summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authornobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-05-22 03:00:08 +0000
committernobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-05-22 03:00:08 +0000
commitd7fba4ec70714ccdf7fb29ce85584a71898b7626 (patch)
tree94d56571cfade12aedab53a01e77d3498f6de7f4 /apps
parent89479b1202f3656b2eab09efe64b1e9e8fd4ced9 (diff)
downloadATCD-d7fba4ec70714ccdf7fb29ce85584a71898b7626.tar.gz
This commit was manufactured by cvs2svn to create tag 'TAO-0_1_23'.TAO-0_1_23
Diffstat (limited to 'apps')
-rw-r--r--apps/Gateway/Gateway/Channel.cpp710
-rw-r--r--apps/Gateway/Gateway/Channel.h280
-rw-r--r--apps/Gateway/Gateway/Channel_Connector.cpp92
-rw-r--r--apps/Gateway/Gateway/Channel_Connector.h41
-rw-r--r--apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp632
-rw-r--r--apps/Gateway/Gateway/Concrete_Connection_Handlers.h127
-rw-r--r--apps/Gateway/Gateway/Concurrency_Strategies.h74
-rw-r--r--apps/Gateway/Gateway/Config_Files.cpp220
-rw-r--r--apps/Gateway/Gateway/Config_Files.h98
-rw-r--r--apps/Gateway/Gateway/Connection_Handler.cpp286
-rw-r--r--apps/Gateway/Gateway/Connection_Handler.h152
-rw-r--r--apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp60
-rw-r--r--apps/Gateway/Gateway/Connection_Handler_Acceptor.h60
-rw-r--r--apps/Gateway/Gateway/Connection_Handler_Connector.cpp74
-rw-r--r--apps/Gateway/Gateway/Connection_Handler_Connector.h39
-rw-r--r--apps/Gateway/Gateway/Consumer_Dispatch_Set.h28
-rw-r--r--apps/Gateway/Gateway/Consumer_Entry.cpp31
-rw-r--r--apps/Gateway/Gateway/Consumer_Entry.h45
-rw-r--r--apps/Gateway/Gateway/Consumer_Map.cpp61
-rw-r--r--apps/Gateway/Gateway/Consumer_Map.h62
-rw-r--r--apps/Gateway/Gateway/Dispatch_Set.h28
-rw-r--r--apps/Gateway/Gateway/Event.h217
-rw-r--r--apps/Gateway/Gateway/Event_Channel.cpp546
-rw-r--r--apps/Gateway/Gateway/Event_Channel.h129
-rw-r--r--apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp60
-rw-r--r--apps/Gateway/Gateway/Event_Forwarding_Discriminator.h60
-rw-r--r--apps/Gateway/Gateway/File_Parser.cpp150
-rw-r--r--apps/Gateway/Gateway/File_Parser.h89
-rw-r--r--apps/Gateway/Gateway/Gateway.cpp342
-rw-r--r--apps/Gateway/Gateway/Gateway.dsp96
-rw-r--r--apps/Gateway/Gateway/Gateway.dsw44
-rw-r--r--apps/Gateway/Gateway/Gateway.h29
-rw-r--r--apps/Gateway/Gateway/Gateway4.mak1592
-rw-r--r--apps/Gateway/Gateway/Gateway4.mdpbin50176 -> 0 bytes
-rw-r--r--apps/Gateway/Gateway/IO_Handler.cpp710
-rw-r--r--apps/Gateway/Gateway/IO_Handler.h224
-rw-r--r--apps/Gateway/Gateway/IO_Handler_Connector.cpp92
-rw-r--r--apps/Gateway/Gateway/IO_Handler_Connector.h40
-rw-r--r--apps/Gateway/Gateway/Makefile814
-rw-r--r--apps/Gateway/Gateway/Options.cpp258
-rw-r--r--apps/Gateway/Gateway/Options.h189
-rw-r--r--apps/Gateway/Gateway/Peer_Message.h89
-rw-r--r--apps/Gateway/Gateway/Routing_Entry.cpp47
-rw-r--r--apps/Gateway/Gateway/Routing_Entry.h53
-rw-r--r--apps/Gateway/Gateway/Routing_Table.cpp69
-rw-r--r--apps/Gateway/Gateway/Routing_Table.h67
-rw-r--r--apps/Gateway/Gateway/Thr_Channel.cpp204
-rw-r--r--apps/Gateway/Gateway/Thr_Channel.h65
-rw-r--r--apps/Gateway/Gateway/Thr_IO_Handler.cpp204
-rw-r--r--apps/Gateway/Gateway/Thr_IO_Handler.h64
-rw-r--r--apps/Gateway/Gateway/Thr_Proxy_Handler.cpp211
-rw-r--r--apps/Gateway/Gateway/Thr_Proxy_Handler.h66
-rw-r--r--apps/Gateway/Gateway/cc_config10
-rw-r--r--apps/Gateway/Gateway/connection_config55
-rw-r--r--apps/Gateway/Gateway/consumer_config35
-rw-r--r--apps/Gateway/Gateway/gatewayd.cpp61
-rw-r--r--apps/Gateway/Gateway/gatewayd.dsp57
-rw-r--r--apps/Gateway/Gateway/rt_config7
-rw-r--r--apps/Gateway/Gateway/svc.conf3
-rw-r--r--apps/Gateway/Makefile26
-rw-r--r--apps/Gateway/Peer/Event.h125
-rw-r--r--apps/Gateway/Peer/Gateway_Handler.cpp652
-rw-r--r--apps/Gateway/Peer/Gateway_Handler.h154
-rw-r--r--apps/Gateway/Peer/Makefile175
-rw-r--r--apps/Gateway/Peer/Options.cpp189
-rw-r--r--apps/Gateway/Peer/Options.h133
-rw-r--r--apps/Gateway/Peer/Peer.cpp844
-rw-r--r--apps/Gateway/Peer/Peer.dsp64
-rw-r--r--apps/Gateway/Peer/Peer.dsw44
-rw-r--r--apps/Gateway/Peer/Peer.h230
-rw-r--r--apps/Gateway/Peer/Peer4.mak594
-rw-r--r--apps/Gateway/Peer/Peer4.mdpbin49664 -> 0 bytes
-rw-r--r--apps/Gateway/Peer/Peer_Message.h44
-rw-r--r--apps/Gateway/Peer/peerd.cpp60
-rw-r--r--apps/Gateway/Peer/peerd.dsp57
-rw-r--r--apps/Gateway/Peer/svc.conf2
-rw-r--r--apps/Gateway/README140
-rw-r--r--apps/JAWS/ChangeLog618
-rw-r--r--apps/JAWS/Makefile25
-rw-r--r--apps/JAWS/PROTOTYPE/HTTP_10.cpp65
-rw-r--r--apps/JAWS/PROTOTYPE/HTTP_10.h31
-rw-r--r--apps/JAWS/PROTOTYPE/HTTP_Policy.cpp15
-rw-r--r--apps/JAWS/PROTOTYPE/HTTP_Policy.h21
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Concurrency.cpp177
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Concurrency.h99
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Data_Block.cpp40
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Data_Block.h34
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/IO.cpp450
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/IO.h201
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.cpp80
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.h97
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp158
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/IO_Handler.h259
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/IO_State.h225
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Makefile1080
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Pipeline.cpp27
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Pipeline.h34
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler.cpp30
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler.h31
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.cpp88
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.h30
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Policy.cpp71
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Policy.h59
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Server.cpp158
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Server.h37
-rw-r--r--apps/JAWS/PROTOTYPE/Makefile300
-rw-r--r--apps/JAWS/PROTOTYPE/main.cpp19
-rw-r--r--apps/JAWS/README15
-rw-r--r--apps/JAWS/clients/Blobby/Blob.cpp92
-rw-r--r--apps/JAWS/clients/Blobby/Blob.h82
-rw-r--r--apps/JAWS/clients/Blobby/Blob_Handler.cpp341
-rw-r--r--apps/JAWS/clients/Blobby/Blob_Handler.h110
-rw-r--r--apps/JAWS/clients/Blobby/Makefile346
-rw-r--r--apps/JAWS/clients/Blobby/Options.cpp79
-rw-r--r--apps/JAWS/clients/Blobby/Options.h66
-rw-r--r--apps/JAWS/clients/Blobby/README33
-rw-r--r--apps/JAWS/clients/Blobby/blobby.cpp97
-rw-r--r--apps/JAWS/clients/Blobby/blobby.mak958
-rw-r--r--apps/JAWS/clients/Blobby/blobby.mdpbin51712 -> 0 bytes
-rw-r--r--apps/JAWS/clients/Caching/Caching.mak824
-rw-r--r--apps/JAWS/clients/Caching/Caching.mdpbin54784 -> 0 bytes
-rw-r--r--apps/JAWS/clients/Caching/ID_Generator.cpp59
-rw-r--r--apps/JAWS/clients/Caching/ID_Generator.h58
-rw-r--r--apps/JAWS/clients/Caching/Local_Locator.cpp258
-rw-r--r--apps/JAWS/clients/Caching/Local_Locator.h113
-rw-r--r--apps/JAWS/clients/Caching/Local_Locator.i44
-rw-r--r--apps/JAWS/clients/Caching/Locator_Request_Reply.cpp459
-rw-r--r--apps/JAWS/clients/Caching/Locator_Request_Reply.h220
-rw-r--r--apps/JAWS/clients/Caching/Locator_Request_Reply.i138
-rw-r--r--apps/JAWS/clients/Caching/Makefile146
-rw-r--r--apps/JAWS/clients/Caching/README83
-rw-r--r--apps/JAWS/clients/Caching/URL_Array_Helper.cpp40
-rw-r--r--apps/JAWS/clients/Caching/URL_Array_Helper.h40
-rw-r--r--apps/JAWS/clients/Caching/URL_Locator.cpp56
-rw-r--r--apps/JAWS/clients/Caching/URL_Locator.h116
-rw-r--r--apps/JAWS/clients/Caching/URL_Locator.i4
-rw-r--r--apps/JAWS/clients/Caching/URL_Properties.cpp160
-rw-r--r--apps/JAWS/clients/Caching/URL_Properties.h196
-rw-r--r--apps/JAWS/clients/Caching/URL_Properties.i203
-rw-r--r--apps/JAWS/clients/Caching/http_client.cpp68
-rw-r--r--apps/JAWS/clients/Caching/http_handler.cpp253
-rw-r--r--apps/JAWS/clients/Caching/http_handler.h76
-rw-r--r--apps/JAWS/clients/Caching/test_URL.cpp33
-rw-r--r--apps/JAWS/clients/Makefile26
-rw-r--r--apps/JAWS/clients/README13
-rw-r--r--apps/JAWS/clients/WebSTONE/COPYING348
-rw-r--r--apps/JAWS/clients/WebSTONE/README245
-rw-r--r--apps/JAWS/clients/WebSTONE/README.DynamicWorkload37
-rw-r--r--apps/JAWS/clients/WebSTONE/README.FIRST21
-rw-r--r--apps/JAWS/clients/WebSTONE/WEBSTONE-VERSION-2.00
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/WebStone-common.pl61
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/WebStone-manage.pl31
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/WebStone-run.pl37
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl95
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/checkfilelist35
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/genfiles41
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/genfiles-from-filelist.sh41
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/gui-configure174
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/killbench13
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/killbench.pl15
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/mine-logs.pl88
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/move-filelist.pl26
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/move-runs.pl24
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/rebootall9
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/runbench193
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/runbench.pl36
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/tabs2html13
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/view-results.pl53
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/webstone-gui.pl316
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/write-testbed.pl47
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/wscollect.pl139
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist6
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist.cgi-heavy6
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-heavy6
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-light6
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-medium6
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist.homepage2
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist.sample6
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/filelist.standard6
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/fileset32
-rwxr-xr-xapps/JAWS/clients/WebSTONE/conf/paths.pl2
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/paths.pl.old2
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/paths.sh0
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/paths.sh.old0
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/testbed33
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/COPYING348
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/FAQ-webstone.html402
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/LICENSE.html16
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/WebStone.html24
-rwxr-xr-xapps/JAWS/clients/WebSTONE/doc/testbed.help21
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/webstone-white-paper.ps8974
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/webstone.gifbin14656 -> 0 bytes
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/webstone2.html72
-rw-r--r--apps/JAWS/clients/WebSTONE/src/Makefile112
-rw-r--r--apps/JAWS/clients/WebSTONE/src/Makefile.in110
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/README232
-rw-r--r--apps/JAWS/clients/WebSTONE/src/acconfig.h15
-rw-r--r--apps/JAWS/clients/WebSTONE/src/bench.c632
-rw-r--r--apps/JAWS/clients/WebSTONE/src/bench.h273
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/cgi-sendbin15452 -> 0 bytes
-rw-r--r--apps/JAWS/clients/WebSTONE/src/cgi-send.c45
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/client/webclient.mak479
-rw-r--r--apps/JAWS/clients/WebSTONE/src/config.cache47
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/config.guess565
-rw-r--r--apps/JAWS/clients/WebSTONE/src/config.h90
-rw-r--r--apps/JAWS/clients/WebSTONE/src/config.h.in89
-rw-r--r--apps/JAWS/clients/WebSTONE/src/config.log4
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/config.status288
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/config.sub867
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/configure2132
-rw-r--r--apps/JAWS/clients/WebSTONE/src/configure.in99
-rw-r--r--apps/JAWS/clients/WebSTONE/src/debug.h17
-rw-r--r--apps/JAWS/clients/WebSTONE/src/errexit.c105
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/gendata/genrand.mak227
-rw-r--r--apps/JAWS/clients/WebSTONE/src/genrand.c59
-rw-r--r--apps/JAWS/clients/WebSTONE/src/get.c317
-rw-r--r--apps/JAWS/clients/WebSTONE/src/get.h16
-rw-r--r--apps/JAWS/clients/WebSTONE/src/getopt.c66
-rw-r--r--apps/JAWS/clients/WebSTONE/src/gettimeofday.c56
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/install-sh238
-rw-r--r--apps/JAWS/clients/WebSTONE/src/logfile278599
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/master/webmaster.mak476
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/buffer.h218
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/cinfo.h144
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h125
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h118
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h122
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/ereport.h119
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h58
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h215
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/minissl.h25
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h178
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nodelock.h45
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h736
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/objndx.h27
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/pblock.h191
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h68
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/session.h83
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h95
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shmem.h82
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h220
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systhr.h128
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/util.h203
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/conf.h153
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/dnfilter.h42
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/func.h109
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/http.h168
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/httpact.h118
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/ipfilter.h46
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/log.h49
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h165
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/objset.h156
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/protocol.h25
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/req.h214
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/servact.h24
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/netsite.h65
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-send.c90
-rw-r--r--apps/JAWS/clients/WebSTONE/src/parse_file_list.c289
-rw-r--r--apps/JAWS/clients/WebSTONE/src/parse_file_list.h19
-rw-r--r--apps/JAWS/clients/WebSTONE/src/rexec.c372
-rw-r--r--apps/JAWS/clients/WebSTONE/src/statistics.c47
-rw-r--r--apps/JAWS/clients/WebSTONE/src/statistics.h11
-rw-r--r--apps/JAWS/clients/WebSTONE/src/sysdep.c50
-rw-r--r--apps/JAWS/clients/WebSTONE/src/sysdep.h130
-rw-r--r--apps/JAWS/clients/WebSTONE/src/timefunc.c169
-rw-r--r--apps/JAWS/clients/WebSTONE/src/timefunc.h30
-rw-r--r--apps/JAWS/clients/WebSTONE/src/webclient.c1295
-rw-r--r--apps/JAWS/clients/WebSTONE/src/webmaster.c1417
-rwxr-xr-xapps/JAWS/clients/WebSTONE/webstone75
-rwxr-xr-xapps/JAWS/remora/app/Makefile19
-rw-r--r--apps/JAWS/remora/app/Remora_Export.cc93
-rw-r--r--apps/JAWS/remora/app/Remora_Export.h85
-rw-r--r--apps/JAWS/remora/app/Remora_Export.i146
-rw-r--r--apps/JAWS/remora/app/Remora_Import.cc109
-rw-r--r--apps/JAWS/remora/app/Remora_Import.h69
-rw-r--r--apps/JAWS/remora/app/Remora_Import.i85
-rw-r--r--apps/JAWS/remora/app/remora.idl100
-rwxr-xr-xapps/JAWS/remora/app/stdmk40
-rw-r--r--apps/JAWS/remora/app/test.cc77
-rw-r--r--apps/JAWS/server/HTTP_Config.cpp137
-rw-r--r--apps/JAWS/server/HTTP_Config.h95
-rw-r--r--apps/JAWS/server/HTTP_Handler.cpp287
-rw-r--r--apps/JAWS/server/HTTP_Handler.h191
-rw-r--r--apps/JAWS/server/HTTP_Helpers.cpp429
-rw-r--r--apps/JAWS/server/HTTP_Helpers.h104
-rw-r--r--apps/JAWS/server/HTTP_Request.cpp658
-rw-r--r--apps/JAWS/server/HTTP_Request.h195
-rw-r--r--apps/JAWS/server/HTTP_Response.cpp360
-rw-r--r--apps/JAWS/server/HTTP_Response.h76
-rw-r--r--apps/JAWS/server/HTTP_Server.cpp392
-rw-r--r--apps/JAWS/server/HTTP_Server.h136
-rw-r--r--apps/JAWS/server/IO.cpp411
-rw-r--r--apps/JAWS/server/IO.h218
-rw-r--r--apps/JAWS/server/JAWS_Concurrency.cpp80
-rw-r--r--apps/JAWS/server/JAWS_Concurrency.h96
-rw-r--r--apps/JAWS/server/JAWS_Pipeline.cpp27
-rw-r--r--apps/JAWS/server/JAWS_Pipeline.h31
-rw-r--r--apps/JAWS/server/JAWS_Pipeline_Handler.cpp24
-rw-r--r--apps/JAWS/server/JAWS_Pipeline_Handler.h29
-rw-r--r--apps/JAWS/server/Makefile605
-rw-r--r--apps/JAWS/server/Parse_Headers.cpp355
-rw-r--r--apps/JAWS/server/Parse_Headers.h117
-rw-r--r--apps/JAWS/server/README201
-rw-r--r--apps/JAWS/server/jaws.auth2
-rw-r--r--apps/JAWS/server/jaws.dsp175
-rw-r--r--apps/JAWS/server/jaws.dsw29
-rw-r--r--apps/JAWS/server/jaws4.mak1051
-rw-r--r--apps/JAWS/server/jaws4.mdpbin54272 -> 0 bytes
-rw-r--r--apps/JAWS/server/main.cpp49
-rw-r--r--apps/JAWS/server/svc.conf37
-rwxr-xr-xapps/JAWS/server/test.cgi9
-rw-r--r--apps/JAWS/stress_testing/Makefile49
-rw-r--r--apps/JAWS/stress_testing/README54
-rw-r--r--apps/JAWS/stress_testing/benchd.cpp240
-rw-r--r--apps/JAWS/stress_testing/client.h8
-rw-r--r--apps/JAWS/stress_testing/clients.mak1616
-rw-r--r--apps/JAWS/stress_testing/clients.mdpbin49664 -> 0 bytes
-rw-r--r--apps/JAWS/stress_testing/config3
-rw-r--r--apps/JAWS/stress_testing/connection.cpp97
-rw-r--r--apps/JAWS/stress_testing/connection.h22
-rw-r--r--apps/JAWS/stress_testing/cp.cpp9
-rw-r--r--apps/JAWS/stress_testing/cp.h14
-rw-r--r--apps/JAWS/stress_testing/global.h26
-rw-r--r--apps/JAWS/stress_testing/http.h16
-rw-r--r--apps/JAWS/stress_testing/http_tester.cpp169
-rw-r--r--apps/JAWS/stress_testing/out2
-rw-r--r--apps/JAWS/stress_testing/stats.cpp87
-rw-r--r--apps/JAWS/stress_testing/stats.h31
-rw-r--r--apps/JAWS/stress_testing/util.cpp60
-rw-r--r--apps/JAWS/stress_testing/util.h34
-rw-r--r--apps/Makefile31
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp130
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h71
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/Makefile163
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp114
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h62
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp114
-rw-r--r--apps/Orbix-Examples/Event_Comm/Makefile26
-rw-r--r--apps/Orbix-Examples/Event_Comm/README109
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp120
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h70
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/Makefile162
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp66
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h56
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp116
-rw-r--r--apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh887
-rw-r--r--apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h37
-rw-r--r--apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h48
-rw-r--r--apps/Orbix-Examples/Event_Comm/include/Notifier_i.h82
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh887
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl94
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp351
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp166
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h38
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Makefile113
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl44
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl44
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp39
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h48
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl51
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp324
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h82
-rw-r--r--apps/Orbix-Examples/Logger/Logger.cpp131
-rw-r--r--apps/Orbix-Examples/Logger/Logger.h56
-rw-r--r--apps/Orbix-Examples/Logger/Makefile63
-rw-r--r--apps/Orbix-Examples/Logger/Orbix.hostgroups1
-rw-r--r--apps/Orbix-Examples/Logger/Orbix.hosts3
-rw-r--r--apps/Orbix-Examples/Logger/README35
-rw-r--r--apps/Orbix-Examples/Logger/a1.tex232
-rw-r--r--apps/Orbix-Examples/Logger/client.cpp142
-rw-r--r--apps/Orbix-Examples/Logger/logger.hh434
-rw-r--r--apps/Orbix-Examples/Logger/logger.idl58
-rw-r--r--apps/Orbix-Examples/Logger/loggerS.cpp141
-rw-r--r--apps/Orbix-Examples/Logger/logger_i.cpp120
-rw-r--r--apps/Orbix-Examples/Logger/logger_i.h75
-rw-r--r--apps/Orbix-Examples/Logger/server.cpp40
-rw-r--r--apps/Orbix-Examples/Makefile25
-rw-r--r--apps/README18
-rw-r--r--apps/gperf/COPYING249
-rw-r--r--apps/gperf/ChangeLog1339
-rw-r--r--apps/gperf/Makefile25
-rw-r--r--apps/gperf/README28
-rw-r--r--apps/gperf/gperf.123
-rw-r--r--apps/gperf/gperf.info1127
-rw-r--r--apps/gperf/gperf.texi1184
-rw-r--r--apps/gperf/src/Bool_Array.cpp89
-rw-r--r--apps/gperf/src/Bool_Array.h65
-rw-r--r--apps/gperf/src/Gen_Perf.cpp346
-rw-r--r--apps/gperf/src/Gen_Perf.h64
-rw-r--r--apps/gperf/src/Hash_Table.cpp84
-rw-r--r--apps/gperf/src/Hash_Table.h59
-rw-r--r--apps/gperf/src/Iterator.cpp90
-rw-r--r--apps/gperf/src/Iterator.h72
-rw-r--r--apps/gperf/src/Key_List.cpp1344
-rw-r--r--apps/gperf/src/Key_List.h120
-rw-r--r--apps/gperf/src/List_Node.cpp115
-rw-r--r--apps/gperf/src/List_Node.h66
-rw-r--r--apps/gperf/src/Makefile155
-rw-r--r--apps/gperf/src/Options.cpp660
-rw-r--r--apps/gperf/src/Options.h174
-rw-r--r--apps/gperf/src/Vectors.cpp30
-rw-r--r--apps/gperf/src/Vectors.h44
-rw-r--r--apps/gperf/src/Version.cpp24
-rw-r--r--apps/gperf/src/gperf.cpp75
-rw-r--r--apps/gperf/src/new.cpp85
-rw-r--r--apps/gperf/tests/Makefile.in72
-rw-r--r--apps/gperf/tests/ada-pred.exp54
-rw-r--r--apps/gperf/tests/ada-res.exp63
-rw-r--r--apps/gperf/tests/ada.gperf63
-rw-r--r--apps/gperf/tests/adadefs.gperf54
-rw-r--r--apps/gperf/tests/c++.gperf47
-rw-r--r--apps/gperf/tests/c-parse.gperf56
-rw-r--r--apps/gperf/tests/c.exp32
-rw-r--r--apps/gperf/tests/c.gperf32
-rw-r--r--apps/gperf/tests/configure.in26
-rw-r--r--apps/gperf/tests/gpc.gperf48
-rw-r--r--apps/gperf/tests/gplus.gperf76
-rw-r--r--apps/gperf/tests/irc.gperf63
-rw-r--r--apps/gperf/tests/makeinfo.gperf116
-rw-r--r--apps/gperf/tests/modula.exp106
-rw-r--r--apps/gperf/tests/modula2.gperf40
-rw-r--r--apps/gperf/tests/modula3.gperf106
-rw-r--r--apps/gperf/tests/pascal.exp36
-rw-r--r--apps/gperf/tests/pascal.gperf36
-rw-r--r--apps/gperf/tests/test-1.exp140
-rw-r--r--apps/gperf/tests/test-2.exp183
-rw-r--r--apps/gperf/tests/test-3.exp169
-rw-r--r--apps/gperf/tests/test-4.exp138
-rw-r--r--apps/gperf/tests/test-5.exp111
-rw-r--r--apps/gperf/tests/test-6.exp74
-rw-r--r--apps/gperf/tests/test-7.exp32
-rw-r--r--apps/gperf/tests/test.c28
432 files changed, 0 insertions, 78568 deletions
diff --git a/apps/Gateway/Gateway/Channel.cpp b/apps/Gateway/Gateway/Channel.cpp
deleted file mode 100644
index 99699a6ee87..00000000000
--- a/apps/Gateway/Gateway/Channel.cpp
+++ /dev/null
@@ -1,710 +0,0 @@
-
-// $Id$
-
-#include "Routing_Entry.h"
-#include "Channel_Connector.h"
-
-// Convenient short-hands.
-#define CO CONDITION
-#define MU MUTEX
-
-// = The total number of bytes sent/received on this channel.
-size_t
-Channel::total_bytes (void)
-{
- return this->total_bytes_;
-}
-
-void
-Channel::total_bytes (size_t bytes)
-{
- this->total_bytes_ += bytes;
-}
-
-Channel::Channel (ROUTING_TABLE *rt,
- Channel_Connector *cc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : ACE_Svc_Handler<CHANNEL_PEER_STREAM, SYNCH> (thr_mgr),
- routing_table_ (rt),
- id_ (-1),
- total_bytes_ (0),
- state_ (Channel::IDLE),
- connector_ (cc),
- timeout_ (1),
- max_timeout_ (Channel::MAX_RETRY_TIMEOUT),
- socket_queue_size_ (socket_queue_size)
-{
-}
-
-// Set the associated channel.
-
-void
-Channel::active (int a)
-{
- this->state (a == 0 ? Channel::IDLE : Channel::ESTABLISHED);
-}
-
-// Get the associated channel.
-
-int
-Channel::active (void)
-{
- return this->state () == Channel::ESTABLISHED;
-}
-
-// Set the direction.
-
-void
-Channel::direction (char d)
-{
- this->direction_ = d;
-}
-
-// Get the direction.
-
-char
-Channel::direction (void)
-{
- return this->direction_;
-}
-
-// Sets the timeout delay.
-
-void
-Channel::timeout (int to)
-{
- if (to > this->max_timeout_)
- to = this->max_timeout_;
-
- this->timeout_ = to;
-}
-
-// Recalculate the current retry timeout delay using exponential
-// backoff. Returns the original timeout (i.e., before the
-// recalculation).
-
-int
-Channel::timeout (void)
-{
- int old_timeout = this->timeout_;
- this->timeout_ *= 2;
-
- if (this->timeout_ > this->max_timeout_)
- this->timeout_ = this->max_timeout_;
-
- return old_timeout;
-}
-
-// Sets the max timeout delay.
-
-void
-Channel::max_timeout (int mto)
-{
- this->max_timeout_ = mto;
-}
-
-// Gets the max timeout delay.
-
-int
-Channel::max_timeout (void)
-{
- return this->max_timeout_;
-}
-
-// Restart connection asynchronously when timeout occurs.
-
-int
-Channel::handle_timeout (const ACE_Time_Value &, const void *)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%t) attempting to reconnect Channel %d with timeout = %d\n",
- this->id (), this->timeout_));
- return this->connector_->initiate_connection (this, ACE_Synch_Options::asynch);
-}
-
-// Restart connection (blocking_semantics dicates whether we
-// restart synchronously or asynchronously).
-
-int
-Channel::reinitiate_connection (void)
-{
- // Skip over deactivated descriptors.
- if (this->get_handle () != -1)
- {
- // Make sure to close down peer to reclaim descriptor.
- this->peer ().close ();
-
-#if 0
-// if (this->state () == FAILED)
-// {
- // Reinitiate timeout to improve reconnection time.
-// this->timeout (1);
-#endif
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) scheduling reinitiation of Channel %d\n",
- this->id ()));
-
- // Reschedule ourselves to try and connect again.
- if (ACE_Service_Config::reactor ()->schedule_timer (this, 0,
- this->timeout ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "schedule_timer"), -1);
- }
- return 0;
-}
-
-// Handle shutdown of the Channel object.
-
-int
-Channel::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) shutting down Channel %d on handle %d\n",
- this->id (), this->get_handle ()));
-
- return this->reinitiate_connection ();
-}
-
-// Set the state of the channel.
-
-void
-Channel::state (Channel::State s)
-{
- this->state_ = s;
-}
-
-// Perform the first-time initiation of a connection to the peer.
-
-int
-Channel::initialize_connection (void)
-{
- this->state_ = Channel::ESTABLISHED;
-
- // Restart the timeout to 1.
- this->timeout (1);
-
-#if defined (ASSIGN_ROUTING_ID)
- // Action that sends the route id to the peerd.
-
- CONN_ID id = htons (this->id ());
-
- ssize_t n = this->peer ().send ((const void *) &id, sizeof id);
-
- if (n != sizeof id)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- n == 0 ? "gatewayd has closed down unexpectedly" : "send"), -1);
-#endif /* ASSIGN_ROUTING_ID */
- return 0;
-}
-
-// Set the size of the socket queue.
-
-void
-Channel::socket_queue_size (void)
-{
- if (this->socket_queue_size_ > 0)
- {
- int option = this->direction_ == 'I' ? SO_RCVBUF : SO_SNDBUF;
-
- if (this->peer ().set_option (SOL_SOCKET, option,
- &this->socket_queue_size_, sizeof (int)) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "set_option"));
- }
-}
-
-// Upcall from the ACE_Acceptor::handle_input() that
-// delegates control to our application-specific Channel.
-
-int
-Channel::open (void *a)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) Channel's fd = %d\n", this->peer ().get_handle ()));
-
- // Set the size of the socket queue.
- this->socket_queue_size ();
-
- // Turn on non-blocking I/O.
- if (this->peer ().enable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Call down to the base class to activate and register this handler.
- if (this->ACE_Svc_Handler<CHANNEL_PEER_STREAM, SYNCH>::open (a) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "activate"), -1);
-
- return this->initialize_connection ();
-}
-
-// Return the current state of the channel.
-
-Channel::State
-Channel::state (void)
-{
- return this->state_;
-}
-
-void
-Channel::id (CONN_ID id)
-{
- this->id_ = id;
-}
-
-CONN_ID
-Channel::id (void)
-{
- return this->id_;
-}
-
-// Set the peer's address information.
-int
-Channel::bind (const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- CONN_ID id)
-{
- this->remote_addr_ = remote_addr;
- this->local_addr_ = local_addr;
- this->id_ = id;
- return 0;
-}
-
-ACE_INET_Addr &
-Channel::remote_addr (void)
-{
- return this->remote_addr_;
-}
-
-ACE_INET_Addr &
-Channel::local_addr (void)
-{
- return this->local_addr_;
-}
-
-// Constructor sets the routing table pointer.
-
-Output_Channel::Output_Channel (ROUTING_TABLE *rt,
- Channel_Connector *cc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : Channel (rt, cc, thr_mgr, socket_queue_size)
-{
- this->direction_ = 'O';
- this->msg_queue ()->high_water_mark (Output_Channel::QUEUE_SIZE);
-}
-
-// This method should be called only when the peer shuts down
-// unexpectedly. This method simply marks the Channel as
-// having failed so that handle_close () can reconnect.
-
-int
-Output_Channel::handle_input (ACE_HANDLE)
-{
- char buf[1];
-
- this->state (Channel::FAILED);
-
- switch (this->peer ().recv (buf, sizeof buf))
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has failed unexpectedly for Output Channel %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has shutdown unexpectedly for Output Channel %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer is sending input on Output Channel %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- }
-}
-
-int
-Output_Channel::svc (void)
-{
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) svc should not be called on Output_Channel!\n"), -1);
-}
-
-// Perform a non-blocking put() of message MB. If we are unable to
-// send the entire message the remainder is re-queued at the *front* of
-// the Message_List.
-
-int
-Output_Channel::nonblk_put (ACE_Message_Block *mb)
-{
- // Try to send the message. If we don't send it all (e.g., due to
- // flow control), then re-queue the remainder at the head of the
- // Message_List and ask the ACE_Reactor to inform us (via
- // handle_output()) when it is possible to try again.
-
- ssize_t n;
-
- if ((n = this->send_peer (mb)) == -1)
- {
- // Things have gone wrong, let's try to close down and set up a new reconnection.
- this->state (Channel::FAILED);
- this->handle_close ();
- return -1;
- }
- else if (errno == EWOULDBLOCK) // Didn't manage to send everything.
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) queueing activated on handle %d to routing id %d\n",
- this->get_handle (), this->id ()));
-
- // ACE_Queue in *front* of the list to preserve order.
- if (this->msg_queue ()->enqueue_head (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enqueue_head"), -1);
-
- // Tell ACE_Reactor to call us back when we can send again.
- else if (ACE_Service_Config::reactor ()->
- schedule_wakeup (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "schedule_wakeup"), -1);
- return 0;
- }
- else
- return n;
-}
-
-int
-Output_Channel::send_peer (ACE_Message_Block *mb)
-{
- ssize_t n;
- size_t len = mb->length ();
-
- if ((n = this->peer ().send (mb->rd_ptr (), len)) <= 0)
- return errno == EWOULDBLOCK ? 0 : n;
- else if (n < len)
- // Re-adjust pointer to skip over the part we did send.
- mb->rd_ptr (n);
- else /* if (n == length) */
- {
- // The whole message is sent, we can now safely deallocate the buffer.
- // Note that this should decrement a reference count...
- delete mb;
- errno = 0;
- }
- this->total_bytes (n);
- return n;
-}
-
-// Finish sending a message when flow control conditions abate.
-// This method is automatically called by the ACE_Reactor.
-
-int
-Output_Channel::handle_output (ACE_HANDLE)
-{
- ACE_Message_Block *mb = 0;
- int status = 0;
-
- ACE_DEBUG ((LM_DEBUG, "(%t) in handle_output on handle %d\n", this->get_handle ()));
- // The list had better not be empty, otherwise there's a bug!
-
- if (this->msg_queue ()->dequeue_head (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) != -1)
- {
- switch (this->nonblk_put (mb))
- {
- case 0: // Partial send.
- ACE_ASSERT (errno == EWOULDBLOCK);
- // Didn't write everything this time, come back later...
- break;
-
- case -1:
- // Caller is responsible for freeing a ACE_Message_Block if failures occur.
- delete mb;
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "transmission failure"));
-
- /* FALLTHROUGH */
- default: // Sent the whole thing.
-
- // If we succeed in writing the entire message (or we did not fail
- // due to EWOULDBLOCK) then check if there are more messages on the Message_List.
- // If there aren't, tell the ACE_Reactor not to notify us anymore (at least
- // until there are new messages queued up).
-
- if (this->msg_queue ()->is_empty ())
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) queueing deactivated on handle %d to routing id %d\n",
- this->get_handle (), this->id ()));
-
-
- if (ACE_Service_Config::reactor ()->
- cancel_wakeup (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "cancel_wakeup"));
- }
- }
- }
- else
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "dequeue_head"));
- return 0;
-}
-
-// Send a message to a peer (may queue if necessary).
-
-int
-Output_Channel::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- if (this->msg_queue ()->is_empty ())
- // Try to send the message *without* blocking!
- return this->nonblk_put (mb);
- else
- // If we have queued up messages due to flow control
- // then just enqueue and return.
- return this->msg_queue ()->enqueue_tail (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Constructor sets the routing table pointer and the connector pointer.
-
-Input_Channel::Input_Channel (ROUTING_TABLE *rt,
- Channel_Connector *cc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : msg_frag_ (0),
- Channel (rt, cc, thr_mgr, socket_queue_size)
-{
- this->direction_ = 'I';
- this->msg_queue ()->high_water_mark (0);
-}
-
-int
-Input_Channel::put (ACE_Message_Block *, ACE_Time_Value *)
-{
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) put should not be called on Input_Channel!\n"), -1);
-}
-
-int
-Input_Channel::svc (void)
-{
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) svc should not be called on Input_Channel!\n"), -1);
-}
-
-// Receive a Peer message from peerd. Handles fragmentation.
-//
-// The routing message returned from recv_peer consists of two parts:
-// 1. The Address part, contains the virtual routing id.
-// 2. The Data part, which contains the actual data to be routed.
-//
-// The reason for having two parts is to shield the higher layers
-// of software from knowledge of the message structure.
-
-int
-Input_Channel::recv_peer (ACE_Message_Block *&route_addr)
-{
- Peer_Message *peer_msg;
- size_t len;
- ssize_t n = 0;
- ssize_t m = 0;
- size_t offset = 0;
-
- if (this->msg_frag_ == 0)
- // No existing fragment...
- ACE_NEW_RETURN (this->msg_frag_,
- ACE_Message_Block (sizeof (Peer_Message)),
- -1);
-
- peer_msg = (Peer_Message *) this->msg_frag_->rd_ptr ();
-
- const ssize_t HEADER_SIZE = sizeof (Peer_Header);
- ssize_t header_bytes_left_to_read = HEADER_SIZE - this->msg_frag_->length ();
-
- if (header_bytes_left_to_read > 0)
- {
- n = this->peer ().recv (this->msg_frag_->wr_ptr (), header_bytes_left_to_read);
-
- if (n == -1 /* error */
- || n == 0 /* EOF */)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "Recv error during header read "));
- ACE_DEBUG ((LM_DEBUG, "attempted to read %d\n", header_bytes_left_to_read));
- delete this->msg_frag_;
- this->msg_frag_ = 0;
- return n;
- }
-
- // Bump the write pointer by the amount read.
- this->msg_frag_->wr_ptr (n);
-
- // At this point we may or may not have the ENTIRE header.
- if (this->msg_frag_->length () < HEADER_SIZE)
- {
- ACE_DEBUG ((LM_DEBUG, "Partial header received: only %d bytes\n",
- this->msg_frag_->length ()));
- // Notify the caller that we didn't get an entire message.
- errno = EWOULDBLOCK;
- return -1;
- }
- }
-
- // At this point there is a complete, valid header in msg_frag_
- len = sizeof peer_msg->buf_ + HEADER_SIZE - this->msg_frag_->length ();
-
- // Try to receive the remainder of the message
-
- switch (m = this->peer ().recv (peer_msg->buf_ + offset, len))
- {
- case -1:
- if (errno == EWOULDBLOCK)
- {
- // This shouldn't happen since the ACE_Reactor
- // just triggered us to handle pending I/O!
- ACE_DEBUG ((LM_DEBUG, "(%t) unexpected recv failure\n"));
- errno = EWOULDBLOCK;
- return -1;
- }
- else
- /* FALLTHROUGH */;
-
- case 0: // Premature EOF.
- delete this->msg_frag_;
- this->msg_frag_ = 0;
- return 0;
-
- default:
- if (m != len)
- // Re-adjust pointer to skip over the part we've read.
- {
- this->msg_frag_->wr_ptr (m);
- errno = EWOULDBLOCK;
- return -1; // Inform caller that we didn't get the whole message.
- }
- else
- {
- // Set the write pointer at 1 past the end of the message.
- this->msg_frag_->wr_ptr (m);
-
- // Set the read pointer to the beginning of the message.
- this->msg_frag_->rd_ptr (this->msg_frag_->base ());
-
- // Allocate a routing message header and chain the data portion
- // onto its continuation field.
- ACE_NEW_RETURN (route_addr,
- ACE_Message_Block (sizeof (Peer_Addr),
- ACE_Message_Block::MB_PROTO,
- this->msg_frag_),
- -1);
-
- Peer_Addr peer_addr (this->id (), peer_msg->header_.routing_id_, 0);
- // Copy the routing address from the Peer_Message into routing_addr.
- route_addr->copy ((char *) &peer_addr, sizeof (Peer_Addr));
-
- // Reset the pointer to indicate we've got an entire message.
- this->msg_frag_ = 0;
- }
- this->total_bytes (m + n);
-#if defined (VERBOSE)
- ACE_DEBUG ((LM_DEBUG, "(%t) channel id = %d, route id = %d, len = %d, payload = %*s",
- peer_addr.conn_id_, peer_msg->header_.routing_id_, peer_msg->header_.len_,
- peer_msg->header_.len_, peer_msg->buf_));
-#else
- ACE_DEBUG ((LM_DEBUG, "(%t) route id = %d, cur len = %d, total bytes read = %d\n",
- peer_msg->header_.routing_id_, peer_msg->header_.len_, this->total_bytes ()));
-#endif
- return m + n;
- }
-}
-
-// Receive various types of input (e.g., Peer message from the
-// gatewayd, as well as stdio).
-
-int
-Input_Channel::handle_input (ACE_HANDLE)
-{
- ACE_Message_Block *route_addr = 0;
-
- switch (this->recv_peer (route_addr))
- {
- case 0:
- // Note that a peer should never initiate a shutdown.
- this->state (Channel::FAILED);
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has closed down unexpectedly for Input Channel %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- case -1:
- if (errno == EWOULDBLOCK)
- // A short-read, we'll come back and finish it up later on!
- return 0;
- else // A weird problem occurred, shut down and start again.
- {
- this->state (Channel::FAILED);
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p for Input Channel %d\n",
- "Peer has failed unexpectedly",
- this->id ()), -1);
- }
- /* NOTREACHED */
- default:
- return this->route_message (route_addr);
- }
-}
-
-// Route a message to its appropriate destination.
-
-int
-Input_Channel::route_message (ACE_Message_Block *route_addr)
-{
- // We got a valid message, so determine its virtual routing id,
- // which is stored in the first of the two message blocks chained together.
-
- Peer_Addr *routing_key = (Peer_Addr *) route_addr->rd_ptr ();
-
- // Skip over the address portion.
- const ACE_Message_Block *const data = route_addr->cont ();
-
- // RE points to the routing entry located for this routing id.
- Routing_Entry *re = 0;
-
- if (this->routing_table_->find (*routing_key, re) != -1)
- {
- // Check to see if there are any destinations.
- if (re->destinations ()->size () == 0)
- ACE_DEBUG ((LM_WARNING,
- "there are no active destinations for this message currently\n"));
-
- else // There are destinations, so forward the message.
- {
- Routing_Entry::ENTRY_SET *esp = re->destinations ();
- Routing_Entry::ENTRY_ITERATOR si (*esp);
-
- for (Channel **channel = 0; si.next (channel) != 0; si.advance ())
- {
- // Only process active channels.
- if ((*channel)->active ())
- {
- // Clone the message portion (should be doing reference counting here...)
- ACE_Message_Block *newmsg = data->clone ();
-
- ACE_DEBUG ((LM_DEBUG, "(%t) sending to peer %d\n", (*channel)->id ()));
-
- if ((*channel)->put (newmsg) == -1)
- {
- if (errno == EWOULDBLOCK) // The queue has filled up!
- ACE_ERROR ((LM_ERROR, "(%t) %p\n",
- "gateway is flow controlled, so we're dropping messages"));
- else
- ACE_ERROR ((LM_ERROR, "(%t) %p transmission error to route %d\n",
- "put", (*channel)->id ()));
-
- // Caller is responsible for freeing a ACE_Message_Block if failures occur.
- delete newmsg;
- }
- }
- }
- // Will become superfluous once we have reference counting...
- delete route_addr;
- return 0;
- }
- }
- delete route_addr;
- // Failure return.
- ACE_ERROR ((LM_DEBUG, "(%t) find failed on conn id = %d, logical id = %d, payload = %d\n",
- routing_key->conn_id_, routing_key->logical_id_, routing_key->payload_));
- return 0;
-}
-
-#if defined (ACE_TEMPLATES_REQUIRE_SPECIALIZATION)
-template class ACE_Map_Manager<Peer_Addr, Routing_Entry *, MUTEX>;
-template class ACE_Map_Iterator<Peer_Addr, Routing_Entry *, MUTEX>;
-template class ACE_Map_Entry<Peer_Addr, Routing_Entry *>;
-#endif /* ACE_TEMPLATES_REQUIRE_SPECIALIZATION */
diff --git a/apps/Gateway/Gateway/Channel.h b/apps/Gateway/Gateway/Channel.h
deleted file mode 100644
index 339716bc55a..00000000000
--- a/apps/Gateway/Gateway/Channel.h
+++ /dev/null
@@ -1,280 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Channel.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_CHANNEL)
-#define _CHANNEL
-
-#include "ace/Service_Config.h"
-#include "ace/INET_Addr.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/Svc_Handler.h"
-#include "Routing_Table.h"
-#include "Routing_Entry.h"
-#include "Peer_Message.h"
-
-// The following typedefs are used in order to parameterize the
-// synchronization policies without changing the source code!
-
-// If we don't have threads then use the single-threaded synchronization.
-#if !defined (ACE_HAS_THREADS)
-#define SYNCH ACE_NULL_SYNCH
-typedef ACE_Null_Mutex MUTEX;
-#define CHANNEL_PEER_STREAM ACE_SOCK_STREAM
-#define CHANNEL_PEER_CONNECTOR ACE_SOCK_CONNECTOR
-#else /* ACE_HAS_THREADS */
-
-// Select communication mechanisms.
-#if 0 // defined (ACE_HAS_TLI)
-// Note that due to inconsistencies between the semantics of sockets
-// and TLI with respect to establishing non-blocking connections it's
-// not a good idea to use TLI...
-#include "ace/TLI_Connector.h"
-#define CHANNEL_PEER_STREAM ACE_TLI_STREAM
-#define CHANNEL_PEER_CONNECTOR ACE_TLI_CONNECTOR
-#else
-#define CHANNEL_PEER_STREAM ACE_SOCK_STREAM
-#define CHANNEL_PEER_CONNECTOR ACE_SOCK_CONNECTOR
-#endif /* 0 */
-
-// Note that we only need to make the ACE_Task thread-safe if we
-// are using the multi-threaded Thr_Output_Channel...
-#if defined (USE_OUTPUT_MT)
-#define SYNCH ACE_MT_SYNCH
-#else
-#define SYNCH ACE_NULL_SYNCH
-#endif /* USE_OUTPUT_MT || USE_INPUT_MT */
-
-// Note that we only need to make the ACE_Map_Manager thread-safe if
-// we are using the multi-threaded Thr_Input_Channel...
-#if defined (USE_INPUT_MT)
-typedef ACE_RW_Mutex MUTEX;
-#else
-typedef ACE_Null_Mutex MUTEX;
-#endif /* USE_INPUT_MT */
-#endif /* ACE_HAS_THREADS */
-
-// Typedef for the routing table.
-typedef Routing_Table<Peer_Addr, Routing_Entry, MUTEX>
- ROUTING_TABLE;
-
-// Forward declaration.
-class Channel_Connector;
-
-class Channel : public ACE_Svc_Handler<CHANNEL_PEER_STREAM, SYNCH>
- // = TITLE
- // Channel contains info about connection state and addressing.
- //
- // = DESCRIPTION
- // The Channel classes process messages sent from the peers to the
- // gateway. These classes works as follows:
- //
- // 1. Channel_Connector creates a number of connections with the set of
- // peers specified in a configuration file.
- //
- // 2. For each peer that connects successfully, Channel_Connector
- // creates an Channel object. Each object assigns a unique routing
- // id to its associated peer. The Channels are used by gatewayd
- // that to receive, route, and forward messages from source peer(s)
- // to destination peer(s).
-{
-public:
- Channel (ROUTING_TABLE *,
- Channel_Connector *,
- ACE_Thread_Manager * = 0,
- int socket_queue_size = 0);
-
- virtual int open (void * = 0);
- // Initialize and activate a single-threaded Channel (called by
- // ACE_Connector::handle_output()).
-
- int bind (const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- CONN_ID);
- // Set the peer's addressing and routing information.
-
- ACE_INET_Addr &remote_addr (void);
- // Returns the peer's routing address.
-
- ACE_INET_Addr &local_addr (void);
- // Returns our local address.
-
- // = Set/get routing id.
- CONN_ID id (void);
- void id (CONN_ID);
-
- // = Set/get the current state of the Channel.
- enum State
- {
- IDLE = 1, // Prior to initialization.
- CONNECTING, // During connection establishment.
- ESTABLISHED, // Channel is established and active.
- DISCONNECTING, // Channel is in the process of connecting.
- FAILED // Channel has failed.
- };
-
- // = Set/get the current state.
- State state (void);
- void state (State);
-
- // = Set/get the current retry timeout delay.
- int timeout (void);
- void timeout (int);
-
- // = Set/get the maximum retry timeout delay.
- int max_timeout (void);
- void max_timeout (int);
-
- // = Set/get Channel activity status.
- int active (void);
- void active (int);
-
- // = Set/get direction (necessary for error checking).
- char direction (void);
- void direction (char);
-
- // = The total number of bytes sent/received on this channel.
- size_t total_bytes (void);
- void total_bytes (size_t bytes);
- // Increment count by <bytes>.
-
- virtual int handle_timeout (const ACE_Time_Value &, const void *arg);
- // Perform timer-based Channel reconnection.
-
-protected:
- enum
- {
- MAX_RETRY_TIMEOUT = 300 // 5 minutes is the maximum timeout.
- };
-
- int initialize_connection (void);
- // Perform the first-time initiation of a connection to the peer.
-
- int reinitiate_connection (void);
- // Reinitiate a connection asynchronously when peers fail.
-
- void socket_queue_size (void);
- // Set the socket queue size.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::RWE_MASK);
- // Perform Channel termination.
-
- ROUTING_TABLE *routing_table_;
- // Pointer to table that maps a Peer_Addr
- // to a Set of Channel *'s for output.
-
- ACE_INET_Addr remote_addr_;
- // Address of peer.
-
- ACE_INET_Addr local_addr_;
- // Address of us.
-
- CONN_ID id_;
- // The assigned routing ID of this entry.
-
- size_t total_bytes_;
- // The total number of bytes sent/received on this channel.
-
- State state_;
- // The current state of the channel.
-
- Channel_Connector *connector_;
- // Back pointer to Channel_Connector to reestablish broken
- // connections.
-
- int timeout_;
- // Amount of time to wait between reconnection attempts.
-
- int max_timeout_;
- // Maximum amount of time to wait between reconnection attempts.
-
- char direction_;
- // Indicates which direction data flows through the channel ('O' ==
- // output and 'I' == input).
-
- int socket_queue_size_;
- // Size of the socket queue (0 means "use default").
-};
-
-class Input_Channel : public Channel
- // = TITLE
- // Handle reception of Peer messages arriving as events.
-{
-public:
- Input_Channel (ROUTING_TABLE *,
- Channel_Connector *,
- ACE_Thread_Manager * = 0,
- int socket_queue_size = 0);
- // Constructor sets the routing table pointer.
-
- virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE);
- // Receive and process peer messages.
-
-protected:
- virtual int recv_peer (ACE_Message_Block *&);
- // Receive a message from a peer.
-
- int route_message (ACE_Message_Block *);
- // Action that receives messages from peerd.
-
- ACE_Message_Block *msg_frag_;
- // Keep track of message fragment to handle non-blocking recv's from
- // peers.
-
- virtual int svc (void);
- // This method is not used since we are single-threaded.
-
-private:
- virtual int put (ACE_Message_Block *, ACE_Time_Value *tv = 0);
- // This methods should not be called to handle input.
-};
-
-class Output_Channel : public Channel
- // = TITLE
- // Handle transmission of messages to other Peers using a
- // single-threaded approach.
-{
-public:
- Output_Channel (ROUTING_TABLE *,
- Channel_Connector *,
- ACE_Thread_Manager * = 0,
- int socket_queue_size = 0);
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
- // Send a message to a gateway (may be queued if necessary).
-
-protected:
- // = We'll allow up to 16 megabytes to be queued per-output
- // channel.
- enum {QUEUE_SIZE = 1024 * 1024 * 16};
-
- virtual int handle_input (ACE_HANDLE);
- // Receive and process shutdowns from peer.
-
- virtual int handle_output (ACE_HANDLE);
- // Finish sending a message when flow control conditions abate.
-
- int nonblk_put (ACE_Message_Block *mb);
- // Perform a non-blocking put().
-
- virtual int send_peer (ACE_Message_Block *);
- // Send a message to a peer.
-
- virtual int svc (void);
- // This method is not used since we are single-threaded.
-};
-
-#endif /* _CHANNEL */
diff --git a/apps/Gateway/Gateway/Channel_Connector.cpp b/apps/Gateway/Gateway/Channel_Connector.cpp
deleted file mode 100644
index a5394e8b013..00000000000
--- a/apps/Gateway/Gateway/Channel_Connector.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-#include "Channel_Connector.h"
-// $Id$
-
-
-Channel_Connector::Channel_Connector (void)
-{
-}
-
-// Override the connection-failure method to add timer support.
-// Note that these timers perform "expoential backoff" to
-// avoid rapidly trying to reestablish connections when a link
-// goes down.
-
-int
-Channel_Connector::handle_close (ACE_HANDLE sd, ACE_Reactor_Mask)
-{
- ACE_Connector<Channel, CHANNEL_PEER_CONNECTOR>::AST *stp = 0;
-
- // Locate the ACE_Svc_Handler corresponding to the socket descriptor.
- if (this->handler_map_.find (sd, stp) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) can't locate channel %d in map, %p\n",
- sd, "find"), -1);
-
- Channel *channel = stp->svc_handler ();
-
- // Schedule a reconnection request at some point in the future
- // (note that channel uses an exponential backoff scheme).
- if (ACE_Service_Config::reactor ()->schedule_timer (channel, 0,
- channel->timeout ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "schedule_timer"), -1);
- return 0;
-}
-
-// Initiate (or reinitiate) a connection to the Channel.
-
-int
-Channel_Connector::initiate_connection (Channel *channel,
- ACE_Synch_Options &synch_options)
-{
- char buf[MAXHOSTNAMELEN];
-
- // Mark ourselves as idle so that the various iterators
- // will ignore us until we are reconnected.
- channel->state (Channel::IDLE);
-
- if (channel->remote_addr ().addr_to_string (buf, sizeof buf) == -1
- || channel->local_addr ().addr_to_string (buf, sizeof buf) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "can't obtain peer's address"), -1);
-
- // Try to connect to the Peer.
-
- if (this->connect (channel, channel->remote_addr (),
- synch_options, channel->local_addr ()) == -1)
- {
- if (errno != EWOULDBLOCK)
- {
- channel->state (Channel::FAILED);
- ACE_DEBUG ((LM_DEBUG, "(%t) %p on address %s\n",
- "connect", buf));
-
- // Reschedule ourselves to try and connect again.
- if (synch_options[ACE_Synch_Options::USE_REACTOR])
- {
- if (ACE_Service_Config::reactor ()->schedule_timer
- (channel, 0, channel->timeout ()) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "schedule_timer"), -1);
- }
- else
- // Failures on synchronous connects are reported as errors
- // so that the caller can decide how to proceed.
- return -1;
- }
- else
- {
- channel->state (Channel::CONNECTING);
- ACE_DEBUG ((LM_DEBUG,
- "(%t) in the process of connecting %s to %s\n",
- synch_options[ACE_Synch_Options::USE_REACTOR]
- ? "asynchronously" : "synchronously", buf));
- }
- }
- else
- {
- channel->state (Channel::ESTABLISHED);
- ACE_DEBUG ((LM_DEBUG, "(%t) connected to %s on %d\n",
- buf, channel->get_handle ()));
- }
- return 0;
-}
diff --git a/apps/Gateway/Gateway/Channel_Connector.h b/apps/Gateway/Gateway/Channel_Connector.h
deleted file mode 100644
index 3e27f37355a..00000000000
--- a/apps/Gateway/Gateway/Channel_Connector.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Channel_Connector.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_CHANNEL_CONNECTOR)
-#define _CHANNEL_CONNECTOR
-
-#include "ace/Connector.h"
-#include "Thr_Channel.h"
-
-class Channel_Connector : public ACE_Connector<Channel, CHANNEL_PEER_CONNECTOR>
- // = TITLE
- // A concrete factory class that setups connections to peerds
- // and produces a new Channel object to do the dirty work...
-{
-public:
- Channel_Connector (void);
-
- // Initiate (or reinitiate) a connection on the Channel.
- int initiate_connection (Channel *,
- ACE_Synch_Options & = ACE_Synch_Options::synch);
-
-protected:
- // Override the connection-failure method to add timer support.
- virtual int handle_close (ACE_HANDLE sd, ACE_Reactor_Mask);
-};
-
-#endif /* _CHANNEL_CONNECTOR */
diff --git a/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp b/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp
deleted file mode 100644
index b76d4191517..00000000000
--- a/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp
+++ /dev/null
@@ -1,632 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-#include "Event_Channel.h"
-#include "Concrete_Connection_Handlers.h"
-
-Consumer_Handler::Consumer_Handler (const Connection_Config_Info &pci)
- : Connection_Handler (pci)
-{
- this->connection_role_ = 'C';
- this->msg_queue ()->high_water_mark (Options::instance ()->max_queue_size ());
-}
-
-// This method should be called only when the Consumer shuts down
-// unexpectedly. This method simply marks the Connection_Handler as
-// having failed so that handle_close () can reconnect.
-
-int
-Consumer_Handler::handle_input (ACE_HANDLE)
-{
- char buf[1];
-
- this->state (Connection_Handler::FAILED);
-
- switch (this->peer ().recv (buf, sizeof buf))
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has failed unexpectedly for Consumer_Handler %d\n",
- this->connection_id ()),
- -1);
- /* NOTREACHED */
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has shutdown unexpectedly for Consumer_Handler %d\n",
- this->connection_id ()),
- -1);
- /* NOTREACHED */
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Consumer is erroneously sending input to Consumer_Handler %d\n",
- this->connection_id ()),
- -1);
- /* NOTREACHED */
- }
-}
-
-// Perform a non-blocking put() of event. If we are unable to send
-// the entire event the remainder is re-queued at the *front* of the
-// Event_List.
-
-int
-Consumer_Handler::nonblk_put (ACE_Message_Block *event)
-{
- // Try to send the event. If we don't send it all (e.g., due to
- // flow control), then re-queue the remainder at the head of the
- // Event_List and ask the ACE_Reactor to inform us (via
- // handle_output()) when it is possible to try again.
-
- ssize_t n = this->send (event);
-
- if (n == -1)
- {
- // Things have gone wrong, let's try to close down and set up a
- // new reconnection by calling handle_close().
- this->state (Connection_Handler::FAILED);
- this->handle_close ();
- return -1;
- }
- else if (errno == EWOULDBLOCK) // Didn't manage to send everything.
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) queueing activated on handle %d to routing id %d\n",
- this->get_handle (),
- this->connection_id ()));
-
- // ACE_Queue in *front* of the list to preserve order.
- if (this->msg_queue ()->enqueue_head
- (event, (ACE_Time_Value *) &ACE_Time_Value::zero) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- "enqueue_head"),
- -1);
-
- // Tell ACE_Reactor to call us back when we can send again.
- else if (ACE_Reactor::instance ()->schedule_wakeup
- (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- "schedule_wakeup"),
- -1);
- return 0;
- }
- else
- return n;
-}
-
-ssize_t
-Consumer_Handler::send (ACE_Message_Block *event)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%t) sending %d bytes to Consumer %d\n",
- event->length (),
- this->connection_id ()));
-
- ssize_t len = event->length ();
- ssize_t n = this->peer ().send (event->rd_ptr (), len);
-
- if (n <= 0)
- return errno == EWOULDBLOCK ? 0 : n;
- else if (n < len)
- // Re-adjust pointer to skip over the part we did send.
- event->rd_ptr (n);
- else // if (n == length)
- {
- // The whole event is sent, we now decrement the reference count
- // (which deletes itself with it reaches 0).
- event->release ();
- errno = 0;
- }
- this->total_bytes (n);
- return n;
-}
-
-// Finish sending an event when flow control conditions abate.
-// This method is automatically called by the ACE_Reactor.
-
-int
-Consumer_Handler::handle_output (ACE_HANDLE)
-{
- ACE_Message_Block *event = 0;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) in handle_output on handle %d\n",
- this->get_handle ()));
-
- // The list had better not be empty, otherwise there's a bug!
-
- if (this->msg_queue ()->dequeue_head
- (event, (ACE_Time_Value *) &ACE_Time_Value::zero) != -1)
- {
- switch (this->nonblk_put (event))
- {
- case 0: // Partial send.
- ACE_ASSERT (errno == EWOULDBLOCK);
- // Didn't write everything this time, come back later...
- break;
-
- case -1:
- // We are responsible for releasing an ACE_Message_Block if
- // failures occur.
- event->release ();
- ACE_ERROR ((LM_ERROR,
- "(%t) %p\n",
- "transmission failure"));
-
- /* FALLTHROUGH */
- default: // Sent the whole thing.
-
- // If we succeed in writing the entire event (or we did not
- // fail due to EWOULDBLOCK) then check if there are more
- // events on the Message_Queue. If there aren't, tell the
- // ACE_Reactor not to notify us anymore (at least until
- // there are new events queued up).
-
- if (this->msg_queue ()->is_empty ())
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) queueing deactivated on handle %d to routing id %d\n",
- this->get_handle (),
- this->connection_id ()));
-
-
- if (ACE_Reactor::instance ()->cancel_wakeup
- (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR ((LM_ERROR,
- "(%t) %p\n",
- "cancel_wakeup"));
- }
- }
- }
- else
- ACE_ERROR ((LM_ERROR,
- "(%t) %p\n",
- "dequeue_head"));
- return 0;
-}
-
-// Send an event to a Consumer (may queue if necessary).
-
-int
-Consumer_Handler::put (ACE_Message_Block *event,
- ACE_Time_Value *)
-{
- if (this->msg_queue ()->is_empty ())
- // Try to send the event *without* blocking!
- return this->nonblk_put (event);
- else
- // If we have queued up events due to flow control then just
- // enqueue and return.
- return this->msg_queue ()->enqueue_tail
- (event, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-Supplier_Handler::Supplier_Handler (const Connection_Config_Info &pci)
- : Connection_Handler (pci),
- msg_frag_ (0)
-{
- this->connection_role_ = 'S';
- this->msg_queue ()->high_water_mark (0);
-}
-
-// Receive an Event from a Supplier. Handles fragmentation.
-//
-// The event returned from recv consists of two parts:
-//
-// 1. The Address part, contains the "virtual" routing id.
-//
-// 2. The Data part, which contains the actual data to be forwarded.
-//
-// The reason for having two parts is to shield the higher layers
-// of software from knowledge of the event structure.
-
-int
-Supplier_Handler::recv (ACE_Message_Block *&forward_addr)
-{
- if (this->msg_frag_ == 0)
- // No existing fragment...
- ACE_NEW_RETURN (this->msg_frag_,
- ACE_Message_Block (sizeof (Event),
- ACE_Message_Block::MB_DATA,
- 0,
- 0,
- 0,
- Options::instance ()->locking_strategy ()),
- -1);
-
- Event *event = (Event *) this->msg_frag_->rd_ptr ();
- ssize_t header_received = 0;
-
- const size_t HEADER_SIZE = sizeof (Event_Header);
- ssize_t header_bytes_left_to_read =
- HEADER_SIZE - this->msg_frag_->length ();
-
- if (header_bytes_left_to_read > 0)
- {
- header_received = this->peer ().recv
- (this->msg_frag_->wr_ptr (), header_bytes_left_to_read);
-
- if (header_received == -1 /* error */
- || header_received == 0 /* EOF */)
- {
- ACE_ERROR ((LM_ERROR, "%p\n",
- "Recv error during header read "));
- ACE_DEBUG ((LM_DEBUG,
- "attempted to read %d\n",
- header_bytes_left_to_read));
- this->msg_frag_ = this->msg_frag_->release ();
- return header_received;
- }
-
- // Bump the write pointer by the amount read.
- this->msg_frag_->wr_ptr (header_received);
-
- // At this point we may or may not have the ENTIRE header.
- if (this->msg_frag_->length () < HEADER_SIZE)
- {
- ACE_DEBUG ((LM_DEBUG,
- "Partial header received: only %d bytes\n",
- this->msg_frag_->length ()));
- // Notify the caller that we didn't get an entire event.
- errno = EWOULDBLOCK;
- return -1;
- }
-
- // Convert the header into host byte order so that we can access
- // it directly without having to repeatedly muck with it...
- event->header_.decode ();
-
- if (event->header_.len_ > ACE_INT32 (sizeof event->data_))
- {
- // This data_ payload is too big!
- errno = EINVAL;
- ACE_DEBUG ((LM_DEBUG,
- "Data payload is too big (%d bytes)\n",
- event->header_.len_));
- return -1;
- }
-
- }
-
- // At this point there is a complete, valid header in Event. Now we
- // need to get the event payload. Due to incomplete reads this may
- // not be the first time we've read in a fragment for this message.
- // We account for this here. Note that the first time in here
- // msg_frag_->wr_ptr() will point to event->data_. Every time we do
- // a successful fragment read, we advance wr_ptr(). Therefore, by
- // subtracting how much we've already read from the
- // event->header_.len_ we complete the data_bytes_left_to_read...
-
- ssize_t data_bytes_left_to_read =
- ssize_t (event->header_.len_ - (msg_frag_->wr_ptr () - event->data_));
-
- ssize_t data_received =
- this->peer ().recv (this->msg_frag_->wr_ptr (), data_bytes_left_to_read);
-
- // Try to receive the remainder of the event.
-
- switch (data_received)
- {
- case -1:
- if (errno == EWOULDBLOCK)
- // This might happen if only the header came through.
- return -1;
- else
- /* FALLTHROUGH */;
-
- case 0: // Premature EOF.
- this->msg_frag_ = this->msg_frag_->release ();
- return 0;
-
- default:
- // Set the write pointer at 1 past the end of the event.
- this->msg_frag_->wr_ptr (data_received);
-
- if (data_received != data_bytes_left_to_read)
- {
- errno = EWOULDBLOCK;
- // Inform caller that we didn't get the whole event.
- return -1;
- }
- else
- {
- // Set the read pointer to the beginning of the event.
- this->msg_frag_->rd_ptr (this->msg_frag_->base ());
-
- // Allocate an event forwarding header and chain the data
- // portion onto its continuation field.
- forward_addr = new ACE_Message_Block (sizeof (Event_Key),
- ACE_Message_Block::MB_PROTO,
- this->msg_frag_,
- 0,
- 0,
- Options::instance ()->locking_strategy ());
- if (forward_addr == 0)
- {
- this->msg_frag_ = this->msg_frag_->release ();
- errno = ENOMEM;
- return -1;
- }
-
- Event_Key event_addr (this->connection_id (),
- event->header_.type_);
- // Copy the forwarding address from the Event_Key into
- // forward_addr.
- forward_addr->copy ((char *) &event_addr, sizeof (Event_Key));
-
- // Reset the pointer to indicate we've got an entire event.
- this->msg_frag_ = 0;
- }
-
- this->total_bytes (data_received + header_received);
- ACE_DEBUG ((LM_DEBUG,
- "(%t) connection id = %d, cur len = %d, total bytes read = %d\n",
- event->header_.connection_id_,
- event->header_.len_,
- data_received + header_received));
- if (Options::instance ()->enabled (Options::VERBOSE))
- ACE_DEBUG ((LM_DEBUG,
- "data_ = %*s\n",
- event->header_.len_ - 2,
- event->data_));
-
- // Encode before returning so that we can set things out in
- // network byte order.
- event->header_.encode ();
- return data_received + header_received;
- }
-}
-
-// Receive various types of input (e.g., Peer event from the
-// gatewayd, as well as stdio).
-
-int
-Supplier_Handler::handle_input (ACE_HANDLE)
-{
- ACE_Message_Block *event_key = 0;
-
- switch (this->recv (event_key))
- {
- case 0:
- // Note that a peer shouldn't initiate a shutdown by closing the
- // connection. Therefore, the peer must have crashed, so we'll
- // need to bail out here and let the higher layers reconnect.
- this->state (Connection_Handler::FAILED);
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has closed down unexpectedly for Input Connection_Handler %d\n",
- this->connection_id ()),
- -1);
- /* NOTREACHED */
- case -1:
- if (errno == EWOULDBLOCK)
- // A short-read, we'll come back and finish it up later on!
- return 0;
- else // A weird problem occurred, shut down and start again.
- {
- this->state (Connection_Handler::FAILED);
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p for Input Connection_Handler %d\n",
- "Peer has failed unexpectedly",
- this->connection_id ()),
- -1);
- }
- /* NOTREACHED */
- default:
- // Route messages to Consumers.
- return this->process (event_key);
- }
-}
-
-// This delegates to the <Event_Channel> to do the actual processing.
-// Typically, this forwards the event to its appropriate Consumer(s).
-
-int
-Supplier_Handler::process (ACE_Message_Block *event_key)
-{
- return this->event_channel_->put (event_key);
-}
-
-Thr_Consumer_Handler::Thr_Consumer_Handler (const Connection_Config_Info &pci)
- : Consumer_Handler (pci)
-{
-}
-
-// This method should be called only when the Consumer shuts down
-// unexpectedly. This method marks the Connection_Handler as having failed
-// and deactivates the ACE_Message_Queue (to wake up the thread
-// blocked on <dequeue_head> in svc()).
-// Thr_Output_Handler::handle_close () will eventually try to
-// reconnect...
-
-int
-Thr_Consumer_Handler::handle_input (ACE_HANDLE h)
-{
- // Call down to the <Consumer_Handler> to handle this first.
- this->Consumer_Handler::handle_input (h);
-
- ACE_Reactor::instance ()->remove_handler
- (h, ACE_Event_Handler::ALL_EVENTS_MASK | ACE_Event_Handler::DONT_CALL);
-
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
- return 0;
-}
-
-// Initialize the threaded Consumer_Handler object and spawn a new
-// thread.
-
-int
-Thr_Consumer_Handler::open (void *)
-{
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Call back to the <Event_Channel> to complete our initialization.
- else if (this->event_channel_->complete_connection_connection (this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "complete_connection_connection"), -1);
-
- // Register ourselves to receive input events (which indicate that
- // the Consumer has shut down unexpectedly).
- else if (ACE_Reactor::instance ()->register_handler
- (this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- else if (this->msg_queue ()->activate () == ACE_Message_Queue<ACE_SYNCH>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // events to Consumers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// Queue up an event for transmission (must not block since
-// Supplier_Handlers may be single-threaded).
-
-int
-Thr_Consumer_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- // Perform non-blocking enqueue, i.e., if <msg_queue> is full
- // *don't* block!
- return this->msg_queue ()->enqueue_tail
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Transmit events to the peer. Note the simplification resulting
-// from the use of threads, compared with the Reactive solution.
-
-int
-Thr_Consumer_Handler::svc (void)
-{
-
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) Thr_Consumer_Handler's handle = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread it is OK to block on
- // output.
-
- for (ACE_Message_Block *mb = 0;
- this->msg_queue ()->dequeue_head (mb) != -1;
- )
- if (this->send (mb) == -1)
- ACE_ERROR ((LM_ERROR,
- "(%t) %p\n",
- "send failed"));
-
- ACE_ASSERT (errno == ESHUTDOWN);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down threaded Consumer_Handler %d on handle %d\n",
- this->connection_id (),
- this->get_handle ()));
-
- this->peer ().close ();
-
- // Re-establish the connection, using expoential backoff.
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->event_channel_->initiate_connection_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
-
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n",
- tv.sec ()));
-
- ACE_OS::sleep (tv);
- }
- }
-
- /* NOTREACHED */
- return 0;
-}
-
-Thr_Supplier_Handler::Thr_Supplier_Handler (const Connection_Config_Info &pci)
- : Supplier_Handler (pci)
-{
-}
-
-int
-Thr_Supplier_Handler::open (void *)
-{
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Call back to the <Event_Channel> to complete our initialization.
- else if (this->event_channel_->complete_connection_connection (this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "complete_connection_connection"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- else if (this->msg_queue ()->activate () == ACE_Message_Queue<ACE_SYNCH>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // events to peers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// Receive events from a Peer in a separate thread (note reuse of
-// existing code!).
-
-int
-Thr_Supplier_Handler::svc (void)
-{
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) Thr_Supplier_Handler's handle = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread and processes events
- // for one connection it is OK to call down to the
- // <Supplier_Handler::handle_input> method, which blocks on
- // input.
-
- while (this->Supplier_Handler::handle_input () != -1)
- continue;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down threaded Supplier_Handler %d on handle %d\n",
- this->connection_id (),
- this->get_handle ()));
-
- this->peer ().close ();
-
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
-
- // Re-establish the connection, using expoential backoff.
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->event_channel_->initiate_connection_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n",
- tv.sec ()));
- ACE_OS::sleep (tv);
- }
- }
- ACE_NOTREACHED(return 0);
-}
diff --git a/apps/Gateway/Gateway/Concrete_Connection_Handlers.h b/apps/Gateway/Gateway/Concrete_Connection_Handlers.h
deleted file mode 100644
index ca36e3f517e..00000000000
--- a/apps/Gateway/Gateway/Concrete_Connection_Handlers.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Concrete_Connection_Handlers.h
-//
-// = DESCRIPTION
-// These are all the subclasses of Connection_Handler that define the
-// appropriate threaded/reactive Consumer/Supplier behavior.
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (CONCRETE_CONNECTION_HANDLER)
-#define CONCRETE_CONNECTION_HANDLER
-
-#include "Connection_Handler.h"
-
-class Supplier_Handler : public Connection_Handler
-{
- // = TITLE
- // Handles reception of Events from Suppliers.
- //
- // = DESCRIPTION
- // Performs framing and error checking on Events. Intended to
- // run reactively, i.e., in one thread of control using a
- // Reactor for demuxing and dispatching.
-public:
- // = Initialization method.
- Supplier_Handler (const Connection_Config_Info &);
-
-protected:
- // = All the following methods are upcalls, so they can be protected.
-
- virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE);
- // Receive and process peer events.
-
- virtual int recv (ACE_Message_Block *&);
- // Receive an event from a Supplier.
-
- int process (ACE_Message_Block *event);
- // This delegates to the <Event_Channel> to do the actual
- // processing. Typically, it forwards the <event> to its
- // appropriate Consumer.
-
- ACE_Message_Block *msg_frag_;
- // Keep track of event fragment to handle non-blocking recv's from
- // Suppliers.
-};
-
-class Consumer_Handler : public Connection_Handler
-{
- // = TITLE
- // Handles transmission of events to Consumers.
- //
- // = DESCRIPTION
- // Performs queueing and error checking. Intended to run
- // reactively, i.e., in one thread of control using a Reactor
- // for demuxing and dispatching. Also uses a Reactor to handle
- // flow controlled output connections.
-public:
- // = Initialization method.
- Consumer_Handler (const Connection_Config_Info &);
-
- virtual int put (ACE_Message_Block *event,
- ACE_Time_Value * = 0);
- // Send an event to a Consumer (may be queued if necessary).
-
-protected:
- virtual int handle_output (ACE_HANDLE);
- // Finish sending event when flow control conditions abate.
-
- int nonblk_put (ACE_Message_Block *mb);
- // Perform a non-blocking put().
-
- virtual ssize_t send (ACE_Message_Block *);
- // Send an event to a Consumer.
-
- virtual int handle_input (ACE_HANDLE);
- // Receive and process shutdowns from a Consumer.
-};
-
-class Thr_Consumer_Handler : public Consumer_Handler
-{
- // = TITLE
- // Runs each <Consumer_Handler> in a separate thread.
-public:
- Thr_Consumer_Handler (const Connection_Config_Info &);
-
- virtual int open (void *);
- // Initialize the threaded Consumer_Handler object and spawn a new
- // thread.
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
- // Send a message to a peer.
-
-protected:
- virtual int handle_input (ACE_HANDLE);
- // Called when Peer shutdown unexpectedly.
-
- virtual int svc (void);
- // Transmit peer messages.
-};
-
-class Thr_Supplier_Handler : public Supplier_Handler
-{
- // = TITLE
- // Runs each <Supplier_Handler> in a separate thread.
-public:
- Thr_Supplier_Handler (const Connection_Config_Info &pci);
-
- virtual int open (void *);
- // Initialize the object and spawn a new thread.
-
-protected:
- virtual int svc (void);
- // Transmit peer messages.
-};
-
-#endif /* CONCRETE_CONNECTION_HANDLER */
diff --git a/apps/Gateway/Gateway/Concurrency_Strategies.h b/apps/Gateway/Gateway/Concurrency_Strategies.h
deleted file mode 100644
index 28e59a4b2e6..00000000000
--- a/apps/Gateway/Gateway/Concurrency_Strategies.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Concurrency_strategies.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_CONCURRENCY_STRATEGIES)
-#define _CONCURRENCY_STRATEGIES
-
-#include "ace/Synch.h"
-
-// The following typedefs are used in order to parameterize the
-// synchronization policies without changing the source code!
-
-// If we don't have threads then use the single-threaded synchronization.
-#if !defined (ACE_HAS_THREADS)
-#define SYNCH_STRATEGY ACE_NULL_SYNCH
-typedef ACE_Null_Mutex MAP_MUTEX;
-#else /* ACE_HAS_THREADS */
-
-// Note that we only need to make the ACE_Task thread-safe if we are
-// using the multi-threaded Thr_Consumer_Proxy...
-#if defined (USE_OUTPUT_MT)
-#define SYNCH_STRATEGY ACE_MT_SYNCH
-#else
-#define SYNCH_STRATEGY ACE_NULL_SYNCH
-#endif /* USE_OUTPUT_MT || USE_INPUT_MT */
-
-// Note that we only need to make the ACE_Map_Manager thread-safe if
-// we are using the multi-threaded Thr_Supplier_Proxy. In this
-// case, we use an RW_Mutex since we'll lookup Consumers far more
-// often than we'll update them.
-#if defined (USE_INPUT_MT)
-typedef ACE_RW_Mutex MAP_MUTEX;
-#else
-typedef ACE_Null_Mutex MAP_MUTEX;
-#endif /* USE_INPUT_MT */
-#endif /* ACE_HAS_THREADS */
-
-// = Forward decls
-class Thr_Consumer_Proxy;
-class Thr_Supplier_Proxy;
-class Consumer_Proxy;
-class Supplier_Proxy;
-
-#if defined (ACE_HAS_THREADS) && (defined (USE_OUTPUT_MT) || defined (USE_INPUT_MT))
-#if defined (USE_OUTPUT_MT)
-typedef Thr_Consumer_Proxy CONSUMER_PROXY;
-#else
-typedef Consumer_Proxy CONSUMER_PROXY;
-#endif /* USE_OUTPUT_MT */
-
-#if defined (USE_INPUT_MT)
-typedef Thr_Supplier_Proxy SUPPLIER_PROXY;
-#else
-typedef Supplier_Proxy SUPPLIER_PROXY;
-#endif /* USE_INPUT_MT */
-#else
-// Instantiate a non-multi-threaded Gateway.
-typedef Supplier_Proxy SUPPLIER_PROXY;
-typedef Consumer_Proxy CONSUMER_PROXY;
-#endif /* ACE_HAS_THREADS */
-
-#endif /* _CONCURRENCY_STRATEGIES */
diff --git a/apps/Gateway/Gateway/Config_Files.cpp b/apps/Gateway/Gateway/Config_Files.cpp
deleted file mode 100644
index 5be544d1863..00000000000
--- a/apps/Gateway/Gateway/Config_Files.cpp
+++ /dev/null
@@ -1,220 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Config_Files.h"
-#include "Options.h"
-
-// This fixes a nasty bug with cfront-based compilers (like
-// Centerline).
-typedef FP::Return_Type FP_RETURN_TYPE;
-
-FP_RETURN_TYPE
-Consumer_Config_File_Parser::read_entry (Consumer_Config_Info &entry,
- int &line_number)
-{
- FP_RETURN_TYPE result;
-
- // Increment the line count.
- line_number++;
-
- // Ignore comments, check for EOF and EOLINE if this succeeds, we
- // have our connection id.
-
- while ((result = this->getint (entry.connection_id_)) != FP::SUCCESS)
- if (result == FP::EOFILE)
- return FP::EOFILE;
- else if (result == FP::EOLINE
- || result == FP::COMMENT)
- line_number++;
-
- // Get the payload type.
- result = this->getint (entry.type_);
- if (result != FP::SUCCESS)
- return result;
-
- // get all the consumers.
- entry.total_consumers_ = 0;
-
- while ((result = this->getint
- (entry.consumers_[entry.total_consumers_])) == FP::SUCCESS)
- ++entry.total_consumers_; // do nothing (should check against max...)
-
- if (result == FP::EOLINE || result == FP::EOFILE)
- return FP::SUCCESS;
- else
- return result;
-}
-
-FP_RETURN_TYPE
-Connection_Config_File_Parser::read_entry (Connection_Config_Info &entry,
- int &line_number)
-{
- char buf[BUFSIZ];
- FP_RETURN_TYPE result;
-
- // Increment the line count.
- line_number++;
-
- // Ignore comments, check for EOF and EOLINE if this succeeds, we
- // have our connection id
-
- while ((result = this->getint (entry.connection_id_)) != FP::SUCCESS)
- if (result == FP::EOFILE)
- return FP::EOFILE;
- else if (result == FP::EOLINE
- || result == FP::COMMENT)
- line_number++;
-
- // Get the hostname.
- result = this->getword (entry.host_);
- if (result != FP::SUCCESS)
- return result;
-
- ACE_INT32 port;
-
- // Get the port number.
- result = this->getint (port);
- if (result == FP::DEFAULT)
- {
- // Get the proxy role, i.e., 'C' (Consumer) or 'S' (Supplier).
- result = this->getword (buf);
- if (result != FP::SUCCESS)
- return result;
- else
- entry.connection_role_ = buf[0];
-
- if (entry.connection_role_ == 'C')
- entry.remote_port_ = Options::instance ()->consumer_connector_port ();
- else if (entry.connection_role_ == 'S')
- entry.remote_port_ = Options::instance ()->supplier_connector_port ();
- else
- // Yikes, this is a *weird* error!
- entry.remote_port_ = 0;
- }
- else if (result != FP::SUCCESS)
- return result;
- else
- {
- entry.remote_port_ = u_short (port);
-
- // Get the proxy role, i.e., 'C' (Consumer) or 'S' (Supplier).
- result = this->getword (buf);
- if (result != FP::SUCCESS)
- return result;
- else
- entry.connection_role_ = buf[0];
- }
-
- // Get the max retry delay.
- result = this->getint (entry.max_retry_timeout_);
- if (result == FP::DEFAULT)
- entry.max_retry_timeout_ = Options::instance ()->max_timeout ();
- else if (result != FP::SUCCESS)
- return result;
-
- // Get the local port number.
- result = this->getint (port);
- if (result == FP::DEFAULT)
- entry.local_port_ = 0; // @@ Should make this an option.
- else if (result != FP::SUCCESS)
- return result;
- else
- entry.local_port_ = u_short (port);
-
- ACE_INT32 priority;
-
- // Get the priority.
- result = this->getint (priority);
- if (result != FP::SUCCESS)
- return result;
- else
- entry.priority_ = priority;
-
- return FP::SUCCESS;
-}
-
-#if defined (DEBUGGING)
-int
-main (int argc, char *argv[])
-{
- FP_RETURN_TYPE result;
- int line_number = 0;
-
- {
- Connection_Config_Info entry;
- Connection_Config_File_Parser connection_config_file;
-
- connection_config_file.open (argc > 1 ? argv[1] : "connection_config");
-
- int line_number = 0;
-
- ACE_DEBUG ((LM_DEBUG,
- "ConnID\tHost\t\tRPort\tRole\tRetry\tLPort\tPriority\n"));
-
- // Read config file line at a time.
- while ((result = connection_config_file.read_entry (entry, line_number)) != FP::EOFILE)
- if (result == FP::PARSE_ERROR)
- ACE_DEBUG ((LM_DEBUG,
- "Error line %d.\n",
- line_number));
- else
- ACE_DEBUG ((LM_DEBUG,
- "%d\t%s\t%d\t%c\t%d\t%d\t%d\n",
- entry.connection_id_,
- entry.host_,
- entry.remote_port_,
- entry.connection_role_,
- entry.max_retry_timeout_,
- entry.local_port_,
- entry.priority_));
-
- connection_config_file.close ();
- }
-
- {
- Consumer_Config_Info entry;
- Consumer_Config_File_Parser consumer_config_file;
-
- consumer_config_file.open (argc > 2 ? argv[2] : "consumer_config");
-
- line_number = 0;
-
- ACE_DEBUG ((LM_DEBUG,
- "\nConnID\tLogic\tPayload\tDestinations\n"));
-
- // Read config file line at a time.
- while ((result = consumer_config_file.read_entry (entry, line_number)) != FP::EOFILE)
- if (result == FP::PARSE_ERROR)
- ACE_DEBUG ((LM_DEBUG,
- "Error line %d.\n",
- line_number));
- else
- {
- ACE_DEBUG ((LM_DEBUG,
- "%d\t%d\t",
- entry.connection_id_,
- entry.type_));
-
- while (--entry.total_consumers_ >= 0)
- ACE_DEBUG ((LM_DEBUG,
- "%d,",
- entry.consumers_[entry.total_consumers_]));
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-
- consumer_config_file.close ();
- }
-
- return 0;
-}
-#endif /* DEBUGGING */
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class File_Parser<Connection_Config_Info>;
-template class File_Parser<Consumer_Config_Info>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate File_Parser<Connection_Config_Info>
-#pragma instantiate File_Parser<Consumer_Config_Info>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/Gateway/Gateway/Config_Files.h b/apps/Gateway/Gateway/Config_Files.h
deleted file mode 100644
index 1e23006ddbd..00000000000
--- a/apps/Gateway/Gateway/Config_Files.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Config_Files.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_CONFIG_FILES)
-#define _CONFIG_FILES
-
-#include "File_Parser.h"
-#include "Event.h"
-
-// Forward declaration.
-class Event_Channel;
-
-class Connection_Config_Info
- // = TITLE
- // Stores connection configuration information.
-{
-public:
- ACE_INT32 connection_id_;
- // Connection id for this Connection_Handler.
-
- char host_[BUFSIZ];
- // Host to connect with.
-
- u_short remote_port_;
- // Port to connect with.
-
- char connection_role_;
- // 'S' (supplier) or 'C' (consumer).
-
- ACE_INT32 max_retry_timeout_;
- // Maximum amount of time to wait for reconnecting.
-
- u_short local_port_;
- // Our local port number.
-
- ACE_INT32 priority_;
- // Priority by which different Consumers and Suppliers should be
- // serviced.
-
- Event_Channel *event_channel_;
- // We just need a place to store this until we can pass it along
- // when creating a Connection_Handler.
-};
-
-class Connection_Config_File_Parser : public File_Parser<Connection_Config_Info>
- // = TITLE
- // Parser for the Connection_Handler Connection file.
-{
-public:
- virtual FP::Return_Type read_entry (Connection_Config_Info &entry,
- int &line_number);
- // Read in a <Connection_Config_Info> entry.
-
-};
-
-class Consumer_Config_Info
- // = TITLE
- // Stores the information in a Consumer Map entry.
-{
-public:
- ACE_INT32 connection_id_;
- // Connection id.
-
- ACE_INT32 type_;
- // Message type.
-
- ACE_INT32 consumers_[MAX_CONSUMERS];
- // Connection ids for consumers that will be routed information
- // containing this <connection_id_>
-
- ACE_INT32 total_consumers_;
- // Total number of these consumers.
-};
-
-class Consumer_Config_File_Parser : public File_Parser<Consumer_Config_Info>
- // = TITLE
- // Parser for the Consumer Map file.
-{
-public:
- virtual FP::Return_Type read_entry (Consumer_Config_Info &entry,
- int &line_number);
- // Read in a <Consumer_Config_Info> entry.
-};
-
-#endif /* _CONFIG_FILES */
diff --git a/apps/Gateway/Gateway/Connection_Handler.cpp b/apps/Gateway/Gateway/Connection_Handler.cpp
deleted file mode 100644
index 7072ce940a3..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler.cpp
+++ /dev/null
@@ -1,286 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-#include "Event_Channel.h"
-#include "Concrete_Connection_Handlers.h"
-
-Event_Channel *
-Connection_Handler::event_channel (void) const
-{
- return this->event_channel_;
-}
-
-void
-Connection_Handler::event_channel (Event_Channel *ec)
-{
- this->event_channel_ = ec;
-}
-
-void
-Connection_Handler::connection_id (CONNECTION_ID id)
-{
- this->connection_id_ = id;
-}
-
-CONNECTION_ID
-Connection_Handler::connection_id (void) const
-{
- return this->connection_id_;
-}
-
-// The total number of bytes sent/received on this Proxy.
-
-size_t
-Connection_Handler::total_bytes (void) const
-{
- return this->total_bytes_;
-}
-
-void
-Connection_Handler::total_bytes (size_t bytes)
-{
- this->total_bytes_ += bytes;
-}
-
-Connection_Handler::Connection_Handler (void)
-{
-}
-
-Connection_Handler::Connection_Handler (const Connection_Config_Info &pci)
- : remote_addr_ (pci.remote_port_, pci.host_[0] == '\0' ? ACE_DEFAULT_SERVER_HOST : pci.host_),
- local_addr_ (pci.local_port_),
- connection_id_ (pci.connection_id_),
- total_bytes_ (0),
- state_ (Connection_Handler::IDLE),
- timeout_ (1),
- max_timeout_ (pci.max_retry_timeout_),
- event_channel_ (pci.event_channel_)
-{
- // Set the priority of the Proxy.
- this->priority (int (pci.priority_));
-}
-
-// Set the connection_role.
-
-void
-Connection_Handler::connection_role (char d)
-{
- this->connection_role_ = d;
-}
-
-// Get the connection_role.
-
-char
-Connection_Handler::connection_role (void) const
-{
- return this->connection_role_;
-}
-
-// Sets the timeout delay.
-
-void
-Connection_Handler::timeout (int to)
-{
- if (to > this->max_timeout_)
- to = this->max_timeout_;
-
- this->timeout_ = to;
-}
-
-// Re-calculate the current retry timeout delay using exponential
-// backoff. Returns the original timeout (i.e., before the
-// re-calculation).
-
-int
-Connection_Handler::timeout (void)
-{
- int old_timeout = this->timeout_;
- this->timeout_ *= 2;
-
- if (this->timeout_ > this->max_timeout_)
- this->timeout_ = this->max_timeout_;
-
- return old_timeout;
-}
-
-// Sets the max timeout delay.
-
-void
-Connection_Handler::max_timeout (int mto)
-{
- this->max_timeout_ = mto;
-}
-
-// Gets the max timeout delay.
-
-int
-Connection_Handler::max_timeout (void) const
-{
- return this->max_timeout_;
-}
-
-// Restart connection asynchronously when timeout occurs.
-
-int
-Connection_Handler::handle_timeout (const ACE_Time_Value &,
- const void *)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%t) attempting to reconnect Connection_Handler %d with timeout = %d\n",
- this->connection_id (),
- this->timeout_));
-
- // Delegate the re-connection attempt to the Event Channel.
- this->event_channel_->initiate_connection_connection (this);
-
- return 0;
-}
-
-// Handle shutdown of the Connection_Handler object.
-
-int
-Connection_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down %s Connection_Handler %d on handle %d\n",
- this->connection_role () == 'C' ? "Consumer" : "Supplier",
- this->connection_id (),
- this->get_handle ()));
-
- // Restart the connection, if possible.
- return this->event_channel_->reinitiate_connection_connection (this);
-}
-
-// Set the state of the Proxy.
-
-void
-Connection_Handler::state (Connection_Handler::State s)
-{
- this->state_ = s;
-}
-
-// Return the current state of the Proxy.
-
-Connection_Handler::State
-Connection_Handler::state (void) const
-{
- return this->state_;
-}
-
-// Upcall from the <ACE_Acceptor> or <ACE_Connector> that delegates
-// control to our Connection_Handler.
-
-int
-Connection_Handler::open (void *)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) %s Connection_Handler's handle = %d\n",
- this->connection_role () == 'C' ? "Consumer" : "Supplier",
- this->peer ().get_handle ()));
-
- // Call back to the <Event_Channel> to complete our initialization.
- if (this->event_channel_->complete_connection_connection (this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "complete_connection_connection"), -1);
-
- // Turn on non-blocking I/O.
- else if (this->peer ().enable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Register ourselves to receive input events.
- else if (ACE_Reactor::instance ()->register_handler
- (this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1);
- else
- return 0;
-}
-
-const ACE_INET_Addr &
-Connection_Handler::remote_addr (void) const
-{
- return this->remote_addr_;
-}
-
-void
-Connection_Handler::remote_addr (ACE_INET_Addr &ra)
-{
- this->remote_addr_ = ra;
-}
-
-const ACE_INET_Addr &
-Connection_Handler::local_addr (void) const
-{
- return this->local_addr_;
-}
-
-void
-Connection_Handler::local_addr (ACE_INET_Addr &la)
-{
- this->local_addr_ = la;
-}
-
-// Make the appropriate type of <Connection_Handler> (i.e.,
-// <Consumer_Handler>, <Supplier_Handler>, <Thr_Consumer_Handler>, or
-// <Thr_Supplier_Handler>).
-
-Connection_Handler *
-Connection_Handler_Factory::make_connection_handler (const Connection_Config_Info &pci)
-{
- Connection_Handler *connection_handler = 0;
-
- // The next few lines of code are dependent on whether we are making
- // a threaded/reactive Supplier_Handler/Consumer_Handler.
-
- if (pci.connection_role_ == 'C') // Configure a Consumer_Handler.
- {
- // Create a threaded Consumer_Handler.
- if (ACE_BIT_ENABLED (Options::instance ()->threading_strategy (),
- Options::OUTPUT_MT))
- ACE_NEW_RETURN (connection_handler,
- Thr_Consumer_Handler (pci),
- 0);
-
- // Create a reactive Consumer_Handler.
- else
- ACE_NEW_RETURN (connection_handler,
- Consumer_Handler (pci),
- 0);
- }
- else // connection_role == 'S', so configure a Supplier_Handler.
- {
- // Create a threaded Supplier_Handler.
- if (ACE_BIT_ENABLED (Options::instance ()->threading_strategy (),
- Options::INPUT_MT))
- ACE_NEW_RETURN (connection_handler,
- Thr_Supplier_Handler (pci),
- 0);
-
- // Create a reactive Supplier_Handler.
- else
- ACE_NEW_RETURN (connection_handler,
- Supplier_Handler (pci),
- 0);
- }
-
- return connection_handler;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Map_Entry<Event_Key, Consumer_Dispatch_Set *>;
-template class ACE_Map_Iterator_Base<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>;
-template class ACE_Map_Iterator<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>;
-template class ACE_Map_Reverse_Iterator<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>;
-template class ACE_Map_Manager<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>;
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-#if defined (ACE_HAS_THREADS)
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_MT_SYNCH>;
-#endif /* ACE_HAS_THREADS */
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Map_Entry<Event_Key, Consumer_Dispatch_Set *>
-#pragma instantiate ACE_Map_Iterator<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>
-#pragma instantiate ACE_Map_Reverse_Iterator<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>
-#pragma instantiate ACE_Map_Iterator_Base<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>
-#pragma instantiate ACE_Map_Manager<Event_Key, Consumer_Dispatch_Set *, MAP_MUTEX>
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-#if defined (ACE_HAS_THREADS)
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_MT_SYNCH>
-#endif /* ACE_HAS_THREADS */
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/Gateway/Gateway/Connection_Handler.h b/apps/Gateway/Gateway/Connection_Handler.h
deleted file mode 100644
index 876f69d97f4..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Connection_Handler.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_CONNECTION_HANDLER)
-#define _CONNECTION_HANDLER
-
-#include "ace/Service_Config.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/Svc_Handler.h"
-#include "Config_Files.h"
-#include "Options.h"
-#include "Event.h"
-
-// Forward declaration.
-class Event_Channel;
-
-class Connection_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_SYNCH>
-{
- // = TITLE
- // <Connection_Handler> contains info about connection state and
- // addressing.
- //
- // = DESCRIPTION
- // The <Connection_Handler> classes process events sent to the
- // Event Channel from Suppliers and forward them to Consumers.
-public:
- Connection_Handler (void);
- // Default constructor (needed to make <ACE_Connector> happy).
-
- Connection_Handler (const Connection_Config_Info &);
- // Real constructor.
-
- virtual int open (void * = 0);
- // Initialize and activate a single-threaded <Connection_Handler>
- // (called by <ACE_Connector::handle_output>).
-
- // = The current state of the Connection_Handler.
- enum State
- {
- IDLE = 1, // Prior to initialization.
- CONNECTING, // During connection establishment.
- ESTABLISHED, // Connection_Handler is established and active.
- DISCONNECTING, // Connection_Handler is in the process of connecting.
- FAILED // Connection_Handler has failed.
- };
-
- // = Set/get the current state.
- void state (State);
- State state (void) const;
-
- // = Set/get remote INET addr.
- void remote_addr (ACE_INET_Addr &);
- const ACE_INET_Addr &remote_addr (void) const;
-
- // = Set/get local INET addr.
- void local_addr (ACE_INET_Addr &);
- const ACE_INET_Addr &local_addr (void) const;
-
- // = Set/get connection id.
- void connection_id (CONNECTION_ID);
- CONNECTION_ID connection_id (void) const;
-
- // = Set/get the current retry timeout delay.
- void timeout (int);
- int timeout (void);
-
- // = Set/get the maximum retry timeout delay.
- void max_timeout (int);
- int max_timeout (void) const;
-
- // = Set/get proxy role (i.e., 'S' for Supplier and 'C' for Consumer
- // (necessary for error checking).
- void connection_role (char);
- char connection_role (void) const;
-
- // = Set/get the <Event_Channel> *.
- void event_channel (Event_Channel *);
- Event_Channel *event_channel (void) const;
-
- // = The total number of bytes sent/received on this proxy.
- void total_bytes (size_t bytes);
- // Increment count by <bytes>.
- size_t total_bytes (void) const;
- // Return the current byte count.
-
- virtual int handle_timeout (const ACE_Time_Value &, const void *arg);
- // Perform timer-based Connection_Handler reconnection.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
- // Perform Connection_Handler termination.
-
-protected:
- ACE_INET_Addr remote_addr_;
- // Address of peer.
-
- ACE_INET_Addr local_addr_;
- // Address of us.
-
- CONNECTION_ID connection_id_;
- // The assigned connection ID of this entry.
-
- size_t total_bytes_;
- // The total number of bytes sent/received on this proxy.
-
- State state_;
- // The current state of the proxy.
-
- int timeout_;
- // Amount of time to wait between reconnection attempts.
-
- int max_timeout_;
- // Maximum amount of time to wait between reconnection attempts.
-
- char connection_role_;
- // Indicates which role the proxy plays ('S' == Supplier and 'C' ==
- // Consumer).
-
- Event_Channel *event_channel_;
- // Reference to the <Event_Channel> that we use to forward all
- // the events from Consumers and Suppliers.
-};
-
-class Connection_Handler_Factory
-{
- // = TITLE
- // Creates the appropriate type of <Connection_Handler>.
- //
- // = DESCRIPTION
- // <Connection_Handler>s can include <Consumer_Handler>,
- // <Supplier_Handler>, <Thr_Consumer_Handler>, or
- // <Thr_Supplier_Handler>).
-public:
- Connection_Handler *make_connection_handler (const Connection_Config_Info &);
- // Make the appropriate type of <Connection_Handler>, based on the
- // <Connection_Config_Info> parameter.
-};
-
-#endif /* _CONNECTION_HANDLER */
diff --git a/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp b/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp
deleted file mode 100644
index 4f399c2b721..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Event_Channel.h"
-#include "Connection_Handler_Acceptor.h"
-
-int
-Connection_Handler_Acceptor::make_svc_handler (Connection_Handler *&ch)
-{
- ACE_ALLOCATOR_RETURN (ch,
- this->connection_handler_factory_.make_connection_handler (this->connection_config_info_),
- -1);
- return 0;
-}
-
-int
-Connection_Handler_Acceptor::accept_svc_handler (Connection_Handler *ch)
-{
- if (this->inherited::accept_svc_handler (ch) == -1)
- return -1;
- else
- {
- ch->connection_id (Options::instance ()->connection_id ());
- ACE_INET_Addr remote_addr;
-
- if (ch->peer ().get_remote_addr (remote_addr) == -1)
- return -1;
-
- // Set the remote address of our connected Peer.
- ch->remote_addr (remote_addr);
-
- // Set the Event_Channel pointer.
- ch->event_channel (&this->event_channel_);
-
- // Increment the connection ID by one.
- Options::instance ()->connection_id ()++;
- return 0;
- }
-}
-
-Connection_Handler_Acceptor::Connection_Handler_Acceptor (Event_Channel &ec,
- char connection_role)
- : event_channel_ (ec)
-{
- this->connection_config_info_.connection_id_ = 0;
- this->connection_config_info_.host_[0] = '\0';
- this->connection_config_info_.remote_port_ = 0;
- this->connection_config_info_.connection_role_ = connection_role;
- this->connection_config_info_.max_retry_timeout_ = Options::instance ()->max_timeout ();
- this->connection_config_info_.local_port_ = 0;
- this->connection_config_info_.priority_ = 1;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
diff --git a/apps/Gateway/Gateway/Connection_Handler_Acceptor.h b/apps/Gateway/Gateway/Connection_Handler_Acceptor.h
deleted file mode 100644
index fb8d84ad667..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler_Acceptor.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Connection_Handler_acceptor.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_CONNECTION_HANDLER_ACCEPTOR)
-#define _CONNECTION_HANDLER_ACCEPTOR
-
-#include "ace/Acceptor.h"
-#include "ace/SOCK_Acceptor.h"
-#include "Connection_Handler.h"
-
-// Forward declaration
-class Event_Channel;
-
-class Connection_Handler_Acceptor : public ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR>
-{
- // = TITLE
- // A concrete factory class that setups connections to peerds
- // and produces a new Connection_Handler object to do the dirty
- // work...
-public:
- Connection_Handler_Acceptor (Event_Channel &,
- char connection_role);
- // Constructor.
-
- virtual int make_svc_handler (Connection_Handler *&ch);
- // Hook method for creating an appropriate <Connection_Handler>.
-
- virtual int accept_svc_handler (Connection_Handler *ch);
- // Hook method for accepting a connection into the
- // <Connection_Handler>.
-
-protected:
- typedef ACE_Acceptor<Connection_Handler, ACE_SOCK_ACCEPTOR>
- inherited;
- // Make life easier later on.
-
- Event_Channel &event_channel_;
- // Reference to the event channel.
-
- Connection_Config_Info connection_config_info_;
- // Keeps track of what type of proxy we need to create.
-
- Connection_Handler_Factory connection_handler_factory_;
- // Make the appropriate type of <Connection_Handler>.
-};
-
-#endif /* _CONNECTION_HANDLER_ACCEPTOR */
diff --git a/apps/Gateway/Gateway/Connection_Handler_Connector.cpp b/apps/Gateway/Gateway/Connection_Handler_Connector.cpp
deleted file mode 100644
index 218d049977f..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler_Connector.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-// $Id$
-
-#include "Connection_Handler_Connector.h"
-
-Connection_Handler_Connector::Connection_Handler_Connector (void)
-{
-}
-
-// Initiate (or reinitiate) a connection to the Connection_Handler.
-
-int
-Connection_Handler_Connector::initiate_connection (Connection_Handler *connection_handler,
- ACE_Synch_Options &synch_options)
-{
- char addr_buf[MAXHOSTNAMELEN];
-
- // Mark ourselves as idle so that the various iterators will ignore
- // us until we are reconnected.
- connection_handler->state (Connection_Handler::IDLE);
-
- // We check the remote addr second so that it remains in the
- // addr_buf.
- if (connection_handler->local_addr ().addr_to_string (addr_buf, sizeof addr_buf) == -1
- || connection_handler->remote_addr ().addr_to_string (addr_buf, sizeof addr_buf) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "can't obtain peer's address"), -1);
-
- // Try to connect to the Peer.
- if (this->connect (connection_handler,
- connection_handler->remote_addr (),
- synch_options,
- connection_handler->local_addr ()) == -1)
- {
- if (errno != EWOULDBLOCK)
- {
- connection_handler->state (Connection_Handler::FAILED);
- ACE_DEBUG ((LM_DEBUG, "(%t) %p on address %s\n",
- "connect", addr_buf));
- return -1;
- }
- else
- {
- connection_handler->state (Connection_Handler::CONNECTING);
- ACE_DEBUG ((LM_DEBUG,
- "(%t) in the process of connecting to %s\n",
- addr_buf));
- }
- }
- else
- {
- connection_handler->state (Connection_Handler::ESTABLISHED);
- ACE_DEBUG ((LM_DEBUG, "(%t) connected to %s on %d\n",
- addr_buf, connection_handler->get_handle ()));
- }
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Connector<Connection_Handler, ACE_SOCK_CONNECTOR>;
-template class ACE_Svc_Tuple<Connection_Handler>;
-template class ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Connector<Connection_Handler, ACE_SOCK_CONNECTOR>
-#pragma instantiate ACE_Svc_Tuple<Connection_Handler>
-#pragma instantiate ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<Connection_Handler> *>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/Gateway/Gateway/Connection_Handler_Connector.h b/apps/Gateway/Gateway/Connection_Handler_Connector.h
deleted file mode 100644
index e81d66d9694..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler_Connector.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Connection_Handler_Connector.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_IO_HANDLER_CONNECTOR)
-#define _IO_HANDLER_CONNECTOR
-
-#include "ace/Connector.h"
-#include "ace/SOCK_Connector.h"
-#include "Connection_Handler.h"
-
-class Connection_Handler_Connector : public ACE_Connector<Connection_Handler, ACE_SOCK_CONNECTOR>
-{
- // = TITLE
- // A concrete factory class that setups connections to peerds
- // and produces a new Connection_Handler object to do the dirty
- // work...
-public:
- Connection_Handler_Connector (void);
-
- // Initiate (or reinitiate) a connection on the Connection_Handler.
- int initiate_connection (Connection_Handler *,
- ACE_Synch_Options & = ACE_Synch_Options::synch);
-
-};
-
-#endif /* _IO_HANDLER_CONNECTOR */
diff --git a/apps/Gateway/Gateway/Consumer_Dispatch_Set.h b/apps/Gateway/Gateway/Consumer_Dispatch_Set.h
deleted file mode 100644
index 2f89143460d..00000000000
--- a/apps/Gateway/Gateway/Consumer_Dispatch_Set.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Consumer_Dispatch_Set.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (CONSUMER_DISPATCH_SET)
-#define CONSUMER_DISPATCH_SET
-
-#include "ace/Containers.h"
-
-// Forward reference.
-class Connection_Handler;
-
-typedef ACE_Unbounded_Set<Connection_Handler *> Consumer_Dispatch_Set;
-typedef ACE_Unbounded_Set_Iterator<Connection_Handler *> Consumer_Dispatch_Set_Iterator;
-
-#endif /* CONSUMER_DISPATCH_SET */
diff --git a/apps/Gateway/Gateway/Consumer_Entry.cpp b/apps/Gateway/Gateway/Consumer_Entry.cpp
deleted file mode 100644
index c3dcd96ebbf..00000000000
--- a/apps/Gateway/Gateway/Consumer_Entry.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-// Defines an entry in the Consumer Map.
-// $Id$
-
-#include "Consumer_Entry.h"
-
-Consumer_Entry::Consumer_Entry (void)
-{
- ACE_NEW (this->destinations_, Consumer_Entry::ENTRY_SET);
-}
-
-Consumer_Entry::~Consumer_Entry (void)
-{
- delete this->destinations_;
-}
-
-// Get the associated set of destinations.
-
-Consumer_Entry::ENTRY_SET *
-Consumer_Entry::destinations (void)
-{
- return this->destinations_;
-}
-
-// Set the associated set of destinations.
-
-void
-Consumer_Entry::destinations (Consumer_Entry::ENTRY_SET *s)
-{
- this->destinations_ = s;
-}
-
diff --git a/apps/Gateway/Gateway/Consumer_Entry.h b/apps/Gateway/Gateway/Consumer_Entry.h
deleted file mode 100644
index fe502991514..00000000000
--- a/apps/Gateway/Gateway/Consumer_Entry.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Consumer_Entry.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_ROUTING_ENTRY)
-#define _ROUTING_ENTRY
-
-#include "ace/Set.h"
-
-// Forward reference.
-class IO_Handler;
-
-class Consumer_Entry
-{
- // = TITLE
- // Defines an entry in the Consumer_Map.
-public:
- Consumer_Entry (void);
- ~Consumer_Entry (void);
-
- typedef ACE_Unbounded_Set<IO_Handler *> ENTRY_SET;
- typedef ACE_Unbounded_Set_Iterator<IO_Handler *> ENTRY_ITERATOR;
-
- // = Set/get the associated set of destinations.
- ENTRY_SET *destinations (void);
- void destinations (ENTRY_SET *);
-
-protected:
- ENTRY_SET *destinations_;
- // The set of destinations;
-};
-
-#endif /* _ROUTING_ENTRY */
diff --git a/apps/Gateway/Gateway/Consumer_Map.cpp b/apps/Gateway/Gateway/Consumer_Map.cpp
deleted file mode 100644
index 6d16601f949..00000000000
--- a/apps/Gateway/Gateway/Consumer_Map.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#if !defined (_CONSUMER_MAP_C)
-#define _CONSUMER_MAP_C
-
-#include "Consumer_Map.h"
-
-// Bind the Event_Addr to the INT_ID.
-
-int
-Consumer_Map::bind (Event_Addr event_addr,
- Consumer_Entry *Consumer_Entry)
-{
- return this->map_.bind (event_addr, Consumer_Entry);
-}
-
-// Find the Consumer_Entry corresponding to the Event_Addr.
-
-int
-Consumer_Map::find (Event_Addr event_addr,
- Consumer_Entry *&Consumer_Entry)
-{
- return this->map_.find (event_addr, Consumer_Entry);
-}
-
-// Unbind (remove) the Event_Addr from the map.
-
-int
-Consumer_Map::unbind (Event_Addr event_addr)
-{
- return this->map_.unbind (event_addr);
-}
-
-Consumer_Map_Iterator::Consumer_Map_Iterator (Consumer_Map &rt)
- : map_iter_ (rt.map_)
-{
-}
-
-int
-Consumer_Map_Iterator::next (Consumer_Entry *&ss)
-{
- // Loop in order to skip over inactive entries if necessary.
-
- for (ACE_Map_Entry<Event_Addr, Consumer_Entry *> *temp = 0;
- this->map_iter_.next (temp) != 0;
- this->advance ())
- {
- // Otherwise, return the next item.
- ss = temp->int_id_;
- return 1;
- }
- return 0;
-}
-
-int
-Consumer_Map_Iterator::advance (void)
-{
- return this->map_iter_.advance ();
-}
-#endif /* _CONSUMER_MAP_C */
diff --git a/apps/Gateway/Gateway/Consumer_Map.h b/apps/Gateway/Gateway/Consumer_Map.h
deleted file mode 100644
index fd392afaf6e..00000000000
--- a/apps/Gateway/Gateway/Consumer_Map.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Consumer_Map.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_CONSUMER_MAP_H)
-#define _CONSUMER_MAP_H
-
-#include "ace/Map_Manager.h"
-#include "Concurrency_Strategies.h"
-#include "Event.h"
-#include "Consumer_Entry.h"
-
-class Consumer_Map
-{
- // = TITLE
- // Define a generic consumer map based on the ACE Map_Manager.
- //
- // = DESCRIPTION
- // This class makes it easier to use the Map_Manager.
-public:
- int bind (Event_Addr event, Consumer_Entry *Consumer_Entry);
- // Associate Event with the Consumer_Entry.
-
- int find (Event_Addr event, Consumer_Entry *&Consumer_Entry);
- // Break any association of EXID.
-
- int unbind (Event_Addr event);
- // Locate EXID and pass out parameter via INID. If found,
- // return 0, else -1.
-
-public:
- ACE_Map_Manager<Event_Addr, Consumer_Entry *, MAP_MUTEX> map_;
- // Map that associates Event Addrs (external ids) with Consumer_Entry *'s
- // <internal IDs>.
-};
-
-class Consumer_Map_Iterator
-{
- // = TITLE
- // Define an iterator for the Consumer Map.
-public:
- Consumer_Map_Iterator (Consumer_Map &mm);
- int next (Consumer_Entry *&);
- int advance (void);
-
-private:
- ACE_Map_Iterator<Event_Addr, Consumer_Entry *, MAP_MUTEX> map_iter_;
- // Map we are iterating over.
-};
-#endif /* _CONSUMER_MAP_H */
diff --git a/apps/Gateway/Gateway/Dispatch_Set.h b/apps/Gateway/Gateway/Dispatch_Set.h
deleted file mode 100644
index a867f1ca5ff..00000000000
--- a/apps/Gateway/Gateway/Dispatch_Set.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Dispatch_Set.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_DISPATCH_SET)
-#define _DISPATCH_SET
-
-#include "ace/Set.h"
-
-// Forward reference.
-class Proxy_Handler;
-
-typedef ACE_Unbounded_Set<Proxy_Handler *> Dispatch_Set;
-typedef ACE_Unbounded_Set_Iterator<Proxy_Handler *> Dispatch_Set_Iterator;
-
-#endif /* _DISPATCH_SET */
diff --git a/apps/Gateway/Gateway/Event.h b/apps/Gateway/Gateway/Event.h
deleted file mode 100644
index 2221f63916a..00000000000
--- a/apps/Gateway/Gateway/Event.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Event.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (EVENT_H)
-#define EVENT_H
-
-#include "ace/OS.h"
-
-// = The following #defines should really be in a separate include
-// file that is shared with the ../Peer/ directory. For now, we'll
-// keep them here to simplify the sharing between the two directories.
-// BTW, this is also the reason why all the methods are inlined...
-
-// Used by Peers to create Consumers in a Gateway.
-#if !defined (DEFAULT_GATEWAY_CONSUMER_PORT)
-#define DEFAULT_GATEWAY_CONSUMER_PORT 10009
-#endif /* DEFAULT_GATEWAY_CONSUMER_PORT */
-
-// Used by Peers create Suppliers in a Gateway.
-#if !defined (DEFAULT_GATEWAY_SUPPLIER_PORT)
-#define DEFAULT_GATEWAY_SUPPLIER_PORT 10010
-#endif /* DEFAULT_GATEWAY_SUPPLIER_PORT */
-
-// Used by a Gateway to create Consumers in a Peer.
-#if !defined (DEFAULT_PEER_CONSUMER_PORT)
-#define DEFAULT_PEER_CONSUMER_PORT 10011
-#endif /* DEFAULT_PEER_CONSUMER_PORT */
-
-// Used by a Gateway to create Suppliers in a Peer.
-#if !defined (DEFAULT_PEER_SUPPLIER_PORT)
-#define DEFAULT_PEER_SUPPLIER_PORT 10012
-#endif /* DEFAULT_PEER_SUPPLIER_PORT */
-
-#if !defined (MAX_CONSUMERS)
-#define MAX_CONSUMERS 1000
-#endif /* MAX_CONSUMERS */
-
-// This is the unique supplier identifier that denotes a particular
-// <Connection_Handler> in the Gateway.
-typedef ACE_INT32 CONNECTION_ID;
-
-enum
-{
- // = These are the types of events generated by the <Suppliers> and
- // handled by the <Event_Channel>.
-
- ROUTING_EVENT = 0,
- // A normal event, which is forwarded to the <Consumers>.
-
- SUBSCRIPTION_EVENT = 1
- // A subscription to <Suppliers> managed by the <Event_Channel>.
-};
-
-class Event_Key
-{
- // = TITLE
- // Address used to identify the source/destination of an event.
- //
- // = DESCRIPTION
- // This is really a "processing descriptor" that is used to
- // decouple the processing, filtering, and forwarding logic of
- // the Event Channel from the format of the data. The
- // <connection_id_> and <type_> fields are copied from the
- // <Event_Header> class below.
-public:
- Event_Key (CONNECTION_ID cid = -1,
- ACE_INT32 type = 0,
- ACE_INT32 priority = 0)
- : connection_id_ (cid),
- type_ (type),
- priority_ (priority)
- {
- }
-
- int operator== (const Event_Key &event_addr) const
- {
- return this->connection_id_ == event_addr.connection_id_
- && this->type_ == event_addr.type_;
- }
-
- CONNECTION_ID connection_id_;
- // Unique connection identifier that denotes a particular
- // Connection_Handler.
-
- ACE_INT32 type_;
- // Event type, e.g., <ROUTING_EVENT> or <SUBSCRIPTION_EVENT>.
-
- ACE_INT32 priority_;
- // Event priority.
-};
-
-class Event_Header
-{
- // = TITLE
- // Fixed sized header.
- //
- // = DESCRIPTION
- // This is designed to have a sizeof (16) to avoid alignment
- // problems on most platforms.
-public:
- enum
- {
- INVALID_ID = -1 // No peer can validly use this number.
- };
-
- Event_Header (ACE_INT32 len,
- CONNECTION_ID connection_id,
- ACE_INT32 type,
- ACE_INT32 priority)
- : len_ (len),
- connection_id_ (connection_id),
- type_ (type),
- priority_ (priority)
- {
- }
-
- void decode (void)
- {
- this->len_ = ntohl (this->len_);
- this->connection_id_ = ntohl (this->connection_id_);
- this->type_ = ntohl (this->type_);
- this->priority_ = ntohl (this->priority_);
- }
- // Decode from network byte order to host byte order.
-
- void encode (void)
- {
- this->len_ = htonl (this->len_);
- this->connection_id_ = htonl (this->connection_id_);
- this->type_ = htonl (this->type_);
- this->priority_ = htonl (this->priority_);
- }
- // Encode from host byte order to network byte order.
-
- ACE_INT32 len_;
- // Length of the data_ payload, in bytes.
-
- CONNECTION_ID connection_id_;
- // Unique connection identifier that denotes a particular
- // Connection_Handler.
-
- ACE_INT32 type_;
- // Event type, e.g., <ROUTING_EVENT> or <SUBSCRIPTION_EVENT>.
-
- ACE_INT32 priority_;
- // Event priority.
-};
-
-class Event
-{
- // = TITLE
- // Variable-sized event (data_ may be variable-sized between
- // 0 and MAX_PAYLOAD_SIZE).
-public:
- enum { MAX_PAYLOAD_SIZE = 1024 };
- // The maximum size of an Event.
-
- Event_Header header_;
- // Event header.
-
- char data_[MAX_PAYLOAD_SIZE];
- // Event data.
-};
-
-class Subscription
-{
- // = TITLE
- // Allows Consumers to subscribe to be routed information
- // arriving from a particular Supplier connection id.
-public:
- void decode (void)
- {
- this->connection_id_ = ntohl (this->connection_id_);
-
- for (ACE_INT32 i = 0; i < this->total_consumers_; i++)
- this->consumers_[i] = ntohl (this->consumers_[i]);
-
- this->total_consumers_ = ntohl (this->total_consumers_);
- }
- // Decode from network byte order to host byte order.
-
- void encode (void)
- {
- this->connection_id_ = htonl (this->connection_id_);
-
- for (ACE_INT32 i = 0; i < this->total_consumers_; i++)
- this->consumers_[i] = htonl (this->consumers_[i]);
-
- this->total_consumers_ = htonl (this->total_consumers_);
- }
- // Encode from host byte order to network byte order.
-
- ACE_INT32 connection_id_;
- // Connection id.
-
- ACE_INT32 consumers_[MAX_CONSUMERS];
- // Connection ids for consumers that will be routed information
- // containing this <connection_id_>
-
- ACE_INT32 total_consumers_;
- // Total number of these consumers.
-};
-
-#endif /* EVENT_H */
diff --git a/apps/Gateway/Gateway/Event_Channel.cpp b/apps/Gateway/Gateway/Event_Channel.cpp
deleted file mode 100644
index 159f91456c4..00000000000
--- a/apps/Gateway/Gateway/Event_Channel.cpp
+++ /dev/null
@@ -1,546 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-#include "Connection_Handler_Connector.h"
-#include "Event_Channel.h"
-
-Event_Channel::~Event_Channel (void)
-{
-}
-
-Event_Channel::Event_Channel (void)
- : supplier_acceptor_ (*this, 'S'),
- consumer_acceptor_ (*this, 'C')
-{
-}
-
-int
-Event_Channel::compute_performance_statistics (void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) doing the performance timeout here...\n"));
- CONNECTION_MAP_ITERATOR cmi (this->connection_map_);
-
- // If we've got a <ACE_Thread_Manager> then use it to suspend all
- // the threads. This will enable us to get an accurate count.
-
- if (Options::instance ()->threading_strategy ()
- != Options::REACTIVE)
- {
- if (ACE_Thread_Manager::instance ()->suspend_all () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "suspend_all"), -1);
- ACE_DEBUG ((LM_DEBUG, "(%t) suspending all threads..."));
- }
-
- size_t total_bytes_in = 0;
- size_t total_bytes_out = 0;
-
- // Iterate through the connection map summing up the number of bytes
- // sent/received.
-
- for (CONNECTION_MAP_ENTRY *me = 0;
- cmi.next (me) != 0;
- cmi.advance ())
- {
- Connection_Handler *connection_handler = me->int_id_;
-
- if (connection_handler->connection_role () == 'C')
- total_bytes_out += connection_handler->total_bytes ();
- else // connection_handler->connection_role () == 'S'
- total_bytes_in += connection_handler->total_bytes ();
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) after %d seconds, \ntotal_bytes_in = %d\ntotal_bytes_out = %d\n",
- Options::instance ()->performance_window (),
- total_bytes_in,
- total_bytes_out));
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) %f Mbits/sec received.\n",
- (float) (total_bytes_in * 8 /
- (float) (1024 * 1024 * Options::instance ()->performance_window ()))));
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) %f Mbits/sec sent.\n",
- (float) (total_bytes_out * 8 /
- (float) (1024 * 1024 * Options::instance ()->performance_window ()))));
-
- // Resume all the threads again.
-
- if (Options::instance ()->threading_strategy ()
- != Options::REACTIVE)
- {
- if (ACE_Thread_Manager::instance ()->resume_all () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "resume_all"), -1);
- ACE_DEBUG ((LM_DEBUG, "(%t) resuming all threads..."));
- }
-
- return 0;
-}
-
-int
-Event_Channel::handle_timeout (const ACE_Time_Value &,
- const void *)
-{
- // This is called periodically to compute performance statistics.
- return this->compute_performance_statistics ();
-}
-
-int
-Event_Channel::put (ACE_Message_Block *event,
- ACE_Time_Value *)
-{
- // We got a valid event, so determine its type, which is stored in
- // the first of the two <ACE_Message_Block>s, which are chained
- // together by <ACE::recv>.
- Event_Key *event_key = (Event_Key *) event->rd_ptr ();
-
- // Skip over the address portion and get the data, which is in the
- // second <ACE_Message_Block>.
- ACE_Message_Block *data = event->cont ();
-
- switch (event_key->type_)
- {
- case ROUTING_EVENT:
- this->routing_event (event_key,
- data);
- break;
- case SUBSCRIPTION_EVENT:
- this->subscription_event (data);
- break;
- }
-
- // Release the memory in the message block.
- event->release ();
- return 0;
-}
-
-void
-Event_Channel::subscription_event (ACE_Message_Block *data)
-{
- Event *event = (Event *) data->rd_ptr ();
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) received a subscription with %d bytes from connection id %d\n",
- event->header_.len_,
- event->header_.connection_id_));
- Subscription *subscription = (Subscription *) event->data_;
- // Convert the subscription into host byte order so that we can
- // access it directly without having to repeatedly muck with it...
- subscription->decode ();
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) connection_id_ = %d, total_consumers_ = %d\n",
- subscription->connection_id_,
- subscription->total_consumers_));
-
- for (ACE_INT32 i = 0;
- i < subscription->total_consumers_;
- i++)
- ACE_DEBUG ((LM_DEBUG,
- "(%t) consumers_[%d] = %d\n",
- i,
- subscription->consumers_[i]));
-
-}
-
-void
-Event_Channel::routing_event (Event_Key *forwarding_address,
- ACE_Message_Block *data)
-{
- Consumer_Dispatch_Set *dispatch_set = 0;
-
- // Initialize the <dispatch_set> to points to the set of Consumers
- // associated with this forwarding address.
-
- if (this->efd_.find (*forwarding_address,
- dispatch_set) == -1)
- // Failure.
- ACE_ERROR ((LM_DEBUG,
- "(%t) find failed on connection id = %d, type = %d\n",
- forwarding_address->connection_id_,
- forwarding_address->type_));
- else
- {
- // Check to see if there are any consumers.
- if (dispatch_set->size () == 0)
- ACE_DEBUG ((LM_WARNING,
- "there are no active consumers for this event currently\n"));
-
- else // There are consumers, so forward the event.
- {
- // Initialize the interator.
- Consumer_Dispatch_Set_Iterator dsi (*dispatch_set);
-
- // At this point, we should assign a thread-safe locking
- // strategy to the <ACE_Message_Block> is we're running in a
- // multi-threaded configuration.
- data->locking_strategy (Options::instance ()->locking_strategy ());
-
- for (Connection_Handler **connection_handler = 0;
- dsi.next (connection_handler) != 0;
- dsi.advance ())
- {
- // Only process active connection_handlers.
- if ((*connection_handler)->state () == Connection_Handler::ESTABLISHED)
- {
- // Duplicate the event portion via reference
- // counting.
- ACE_Message_Block *dup_msg = data->duplicate ();
-
- ACE_DEBUG ((LM_DEBUG, "(%t) forwarding to Consumer %d\n",
- (*connection_handler)->connection_id ()));
-
- if ((*connection_handler)->put (dup_msg) == -1)
- {
- if (errno == EWOULDBLOCK) // The queue has filled up!
- ACE_ERROR ((LM_ERROR, "(%t) %p\n",
- "gateway is flow controlled, so we're dropping events"));
- else
- ACE_ERROR ((LM_ERROR,
- "(%t) %p transmission error to peer %d\n",
- "put",
- (*connection_handler)->connection_id ()));
-
- // We are responsible for releasing an
- // ACE_Message_Block if failures occur.
- dup_msg->release ();
- }
- }
- }
- }
- }
-}
-
-int
-Event_Channel::initiate_connection_connection (Connection_Handler *connection_handler)
-{
- ACE_Synch_Options synch_options;
-
- if (Options::instance ()->blocking_semantics () == ACE_NONBLOCK)
- synch_options = ACE_Synch_Options::asynch;
- else
- synch_options = ACE_Synch_Options::synch;
-
- return this->connector_.initiate_connection (connection_handler,
- synch_options);
-}
-
-int
-Event_Channel::complete_connection_connection (Connection_Handler *connection_handler)
-{
- int option = connection_handler->connection_role () == 'S' ? SO_RCVBUF : SO_SNDBUF;
- int socket_queue_size = Options::instance ()->socket_queue_size ();
-
- if (socket_queue_size > 0)
- if (connection_handler->peer ().set_option (SOL_SOCKET,
- option,
- &socket_queue_size,
- sizeof (int)) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "set_option"));
-
- connection_handler->thr_mgr (ACE_Thread_Manager::instance ());
-
- // Our state is now "established."
- connection_handler->state (Connection_Handler::ESTABLISHED);
-
- // Restart the timeout to 1.
- connection_handler->timeout (1);
-
- ACE_INT32 id = htonl (connection_handler->connection_id ());
-
- // Send the connection id to the peerd.
-
- ssize_t n = connection_handler->peer ().send ((const void *) &id, sizeof id);
-
- if (n != sizeof id)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- n == 0 ? "peer has closed down unexpectedly" : "send"),
- -1);
- return 0;
-}
-
-// Restart connection (blocking_semantics dicates whether we restart
-// synchronously or asynchronously).
-
-int
-Event_Channel::reinitiate_connection_connection (Connection_Handler *connection_handler)
-{
- // Skip over proxies with deactivated handles.
- if (connection_handler->get_handle () != ACE_INVALID_HANDLE)
- // Make sure to close down peer to reclaim descriptor.
- connection_handler->peer ().close ();
-
- if (connection_handler->state () != Connection_Handler::DISCONNECTING)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) scheduling reinitiation of Connection_Handler %d\n",
- connection_handler->connection_id ()));
-
- // Reschedule ourselves to try and connect again.
- if (ACE_Reactor::instance ()->schedule_timer
- (connection_handler, 0, connection_handler->timeout ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "schedule_timer"), -1);
- }
- return 0;
-}
-
-// Initiate active connections with the Consumer and Supplier Peers.
-
-void
-Event_Channel::initiate_connector (void)
-{
- if (Options::instance ()->enabled
- (Options::CONSUMER_CONNECTOR | Options::SUPPLIER_CONNECTOR))
- {
- CONNECTION_MAP_ITERATOR cmi (this->connection_map_);
-
- // Iterate through the Consumer Map connecting all the
- // Connection_Handlers.
-
- for (CONNECTION_MAP_ENTRY *me = 0;
- cmi.next (me) != 0;
- cmi.advance ())
- {
- Connection_Handler *connection_handler = me->int_id_;
-
- if (this->initiate_connection_connection (connection_handler) == -1)
- continue; // Failures are handled elsewhere...
- }
- }
-}
-
-// Initiate passive acceptor to wait for Consumer and Supplier Peers
-// to accept.
-
-int
-Event_Channel::initiate_acceptors (void)
-{
- if (Options::instance ()->enabled (Options::CONSUMER_ACCEPTOR)
- && this->consumer_acceptor_.open
- (Options::instance ()->consumer_acceptor_port (),
- ACE_Reactor::instance (),
- Options::instance ()->blocking_semantics ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "cannot register acceptor"),
- -1);
- else
- ACE_DEBUG ((LM_DEBUG,
- "accepting Consumers at %d\n",
- Options::instance ()->consumer_acceptor_port ()));
-
- if (Options::instance ()->enabled (Options::SUPPLIER_ACCEPTOR)
- && this->supplier_acceptor_.open
- (Options::instance ()->supplier_acceptor_port (),
- ACE_Reactor::instance (),
- Options::instance ()->blocking_semantics ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "cannot register acceptor"),
- -1);
- else
- ACE_DEBUG ((LM_DEBUG,
- "accepting Suppliers at %d\n",
- Options::instance ()->supplier_acceptor_port ()));
-
- return 0;
-}
-
-// This method gracefully shuts down all the Handlers in the
-// Connection_Handler Connection Map.
-
-int
-Event_Channel::close (u_long)
-{
- if (Options::instance ()->threading_strategy () != Options::REACTIVE)
- {
- if (ACE_Thread_Manager::instance ()->suspend_all () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- "suspend_all"),
- -1);
- ACE_DEBUG ((LM_DEBUG,
- "(%t) suspending all threads\n"));
- }
-
- // First tell everyone that the spaceship is here...
- {
- CONNECTION_MAP_ITERATOR cmi (this->connection_map_);
-
- // Iterate over all the handlers and shut them down.
-
- for (CONNECTION_MAP_ENTRY *me;
- cmi.next (me) != 0;
- cmi.advance ())
- {
- Connection_Handler *connection_handler = me->int_id_;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) closing down connection %d\n",
- connection_handler->connection_id ()));
-
- // Mark Connection_Handler as DISCONNECTING so we don't try to
- // reconnect...
- connection_handler->state (Connection_Handler::DISCONNECTING);
- }
- }
-
- // Close down the connector
- this->connector_.close ();
-
- // Close down the supplier acceptor.
- this->supplier_acceptor_.close ();
-
- // Close down the consumer acceptor.
- this->consumer_acceptor_.close ();
-
- // Now tell everyone that it is now time to commit suicide.
- {
- CONNECTION_MAP_ITERATOR cmi (this->connection_map_);
-
- for (CONNECTION_MAP_ENTRY *me;
- cmi.next (me) != 0;
- cmi.advance ())
- {
- Connection_Handler *connection_handler = me->int_id_;
-
- // Deallocate Connection_Handler resources.
- connection_handler->destroy (); // Will trigger a delete.
- }
- }
-
- return 0;
-}
-
-int
-Event_Channel::find_proxy (ACE_INT32 connection_id,
- Connection_Handler *&connection_handler)
-{
- return this->connection_map_.find (connection_id,
- connection_handler);
-}
-
-int
-Event_Channel::bind_proxy (Connection_Handler *connection_handler)
-{
- int result = this->connection_map_.bind (connection_handler->connection_id (),
- connection_handler);
-
- switch (result)
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) bind failed for connection %d\n",
- connection_handler->connection_id ()),
- -1);
- /* NOTREACHED */
- case 1: // Oops, found a duplicate!
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) duplicate connection %d, already bound\n",
- connection_handler->connection_id ()),
- -1);
- /* NOTREACHED */
- case 0:
- // Success.
- return 0;
- /* NOTREACHED */
- default:
- ACE_ERROR_RETURN ((LM_DEBUG,
- "(%t) invalid result %d\n",
- result),
- -1);
- /* NOTREACHED */
- }
-
- return 0;
-}
-
-int
-Event_Channel::subscribe (const Event_Key &event_addr,
- Consumer_Dispatch_Set *cds)
-{
- int result = this->efd_.bind (event_addr, cds);
-
- // Bind with consumer map, keyed by peer address.
- switch (result)
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) bind failed for connection %d\n",
- event_addr.connection_id_),
- -1);
- /* NOTREACHED */
- case 1: // Oops, found a duplicate!
- ACE_ERROR_RETURN ((LM_DEBUG,
- "(%t) duplicate consumer map entry %d, "
- "already bound\n",
- event_addr.connection_id_),
- -1);
- /* NOTREACHED */
- case 0:
- // Success.
- return 0;
- default:
- ACE_ERROR_RETURN ((LM_DEBUG,
- "(%t) invalid result %d\n",
- result),
- -1);
- /* NOTREACHED */
- }
-
- return 0;
-}
-
-int
-Event_Channel::open (void *)
-{
- // Ignore <SIGPIPE> so each <Consumer_Handler> can handle it.
- ACE_Sig_Action sig (ACE_SignalHandler (SIG_IGN), SIGPIPE);
- ACE_UNUSED_ARG (sig);
-
- // Actively initiate Peer connections.
- this->initiate_connector ();
-
- // Passively initiate Peer acceptor.
- if (this->initiate_acceptors () == -1)
- return -1;
-
- // If we're not running reactively, then we need to make sure that
- // <ACE_Message_Block> reference counting operations are
- // thread-safe. Therefore, we create an <ACE_Lock_Adapter> that is
- // parameterized by <ACE_SYNCH_MUTEX> to prevent race conditions.
- if (Options::instance ()->threading_strategy ()
- != Options::REACTIVE)
- {
- ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *la;
-
- ACE_NEW_RETURN (la,
- ACE_Lock_Adapter<ACE_SYNCH_MUTEX>,
- -1);
-
- Options::instance ()->locking_strategy (la);
- }
-
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Lock_Adapter<ACE_SYNCH_MUTEX>;
-template class ACE_Map_Entry<ACE_INT32, Connection_Handler *>;
-template class ACE_Map_Iterator<ACE_INT32, Connection_Handler *, MAP_MUTEX>;
-template class ACE_Map_Reverse_Iterator<ACE_INT32, Connection_Handler *, MAP_MUTEX>;
-template class ACE_Map_Iterator_Base<ACE_INT32, Connection_Handler *, MAP_MUTEX>;
-template class ACE_Map_Manager<ACE_INT32, Connection_Handler *, MAP_MUTEX>;
-template class ACE_Unbounded_Set_Iterator<Connection_Handler *>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Lock_Adapter<ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Map_Entry<ACE_INT32, Connection_Handler *>
-#pragma instantiate ACE_Map_Iterator<ACE_INT32, Connection_Handler *, MAP_MUTEX>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_INT32, Connection_Handler *, MAP_MUTEX>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_INT32, Connection_Handler *, MAP_MUTEX>
-#pragma instantiate ACE_Map_Manager<ACE_INT32, Connection_Handler *, MAP_MUTEX>
-#pragma instantiate ACE_Unbounded_Set_Iterator<Connection_Handler *>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/Gateway/Gateway/Event_Channel.h b/apps/Gateway/Gateway/Event_Channel.h
deleted file mode 100644
index dfe5faa6fd4..00000000000
--- a/apps/Gateway/Gateway/Event_Channel.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Event_Channel.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (ACE_EVENT_CHANNEL)
-#define ACE_EVENT_CHANNEL
-
-#include "Connection_Handler_Connector.h"
-#include "Connection_Handler_Acceptor.h"
-#include "Consumer_Dispatch_Set.h"
-#include "Event_Forwarding_Discriminator.h"
-
-typedef ACE_Null_Mutex MAP_MUTEX;
-
-class ACE_Svc_Export Event_Channel : public ACE_Event_Handler
-{
- // = TITLE
- // Define a generic Event_Channel.
- //
- // = DESCRIPTION
- // The inspiration for this class is derived from the CORBA COS
- // Event Channel, though the design is simplified.
- //
- // We inherit from <ACE_Event_Handler> so that we can be
- // registered with an <ACE_Reactor> to handle timeouts.
-public:
- // = Initialization and termination methods.
- Event_Channel (void);
- ~Event_Channel (void);
-
- virtual int open (void * = 0);
- // Open the channel.
-
- virtual int close (u_long = 0);
- // Close down the Channel.
-
- // = Proxy management methods.
- int initiate_connection_connection (Connection_Handler *);
- // Initiate the connection of the <Connection_Handler> to its peer.
-
- int complete_connection_connection (Connection_Handler *);
- // Complete the initialization of the <Connection_Handler> once it's
- // connected to its Peer.
-
- int reinitiate_connection_connection (Connection_Handler *);
- // Reinitiate a connection asynchronously when the Peer fails.
-
- int bind_proxy (Connection_Handler *);
- // Bind the <Connection_Handler> to the <connection_map_>.
-
- int find_proxy (ACE_INT32 connection_id,
- Connection_Handler *&);
- // Locate the <Connection_Handler> with <connection_id>.
-
- int subscribe (const Event_Key &event_addr,
- Consumer_Dispatch_Set *cds);
- // Subscribe the <Consumer_Dispatch_Set> to receive events that
- // match <Event_Key>.
-
- // = Event processing entry point.
- virtual int put (ACE_Message_Block *mb,
- ACE_Time_Value * = 0);
- // Pass <mb> to the Event Channel so it can forward it to Consumers.
-
- void initiate_connector (void);
- // Actively initiate connections to the Peers.
-
- int initiate_acceptors (void);
- // Passively initiate the <Peer_Acceptor>s for Consumer and
- // Suppliers.
-
-private:
- int parse_args (int argc, char *argv[]);
- // Parse the command-line arguments.
-
- // = Methods for handling events.
- void routing_event (Event_Key *event_key,
- ACE_Message_Block *data);
- // Forwards the <data> to Consumer that have registered to receive
- // it, based on addressing information in the <event_key>.
-
- void subscription_event (ACE_Message_Block *data);
- // Add a Consumer subscription.
-
- int compute_performance_statistics (void);
- // Perform timer-based performance profiling.
-
- virtual int handle_timeout (const ACE_Time_Value &,
- const void *arg);
- // Periodically callback to perform timer-based performance
- // profiling.
-
- Connection_Handler_Connector connector_;
- // Used to establish the connections actively.
-
- Connection_Handler_Acceptor supplier_acceptor_;
- // Used to establish connections passively and create Suppliers.
-
- Connection_Handler_Acceptor consumer_acceptor_;
- // Used to establish connections passively and create Consumers.
-
- // = Make life easier by defining typedefs.
- typedef ACE_Map_Manager<CONNECTION_ID, Connection_Handler *, MAP_MUTEX>
- CONNECTION_MAP;
- typedef ACE_Map_Iterator<CONNECTION_ID, Connection_Handler *, MAP_MUTEX>
- CONNECTION_MAP_ITERATOR;
- typedef ACE_Map_Entry<CONNECTION_ID, Connection_Handler *>
- CONNECTION_MAP_ENTRY;
-
- CONNECTION_MAP connection_map_;
- // Table that maps <CONNECTION_ID>s to <Connection_Handler> *'s.
-
- Event_Forwarding_Discriminator efd_;
- // Map that associates an event to a set of <Consumer_Handler> *'s.
-};
-
-#endif /* ACE_EVENT_CHANNEL */
diff --git a/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp b/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp
deleted file mode 100644
index 8bda0e85a4d..00000000000
--- a/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#if !defined (_CONSUMER_MAP_C)
-#define _CONSUMER_MAP_C
-
-#include "Event_Forwarding_Discriminator.h"
-
-// Bind the Event_Key to the INT_ID.
-
-int
-Event_Forwarding_Discriminator::bind (Event_Key event_addr,
- Consumer_Dispatch_Set *cds)
-{
- return this->map_.bind (event_addr, cds);
-}
-
-// Find the Consumer_Dispatch_Set corresponding to the Event_Key.
-
-int
-Event_Forwarding_Discriminator::find (Event_Key event_addr,
- Consumer_Dispatch_Set *&cds)
-{
- return this->map_.find (event_addr, cds);
-}
-
-// Unbind (remove) the Event_Key from the map.
-
-int
-Event_Forwarding_Discriminator::unbind (Event_Key event_addr)
-{
- return this->map_.unbind (event_addr);
-}
-
-Event_Forwarding_Discriminator_Iterator::Event_Forwarding_Discriminator_Iterator
- (Event_Forwarding_Discriminator &rt)
- : map_iter_ (rt.map_)
-{
-}
-
-int
-Event_Forwarding_Discriminator_Iterator::next (Consumer_Dispatch_Set *&cds)
-{
- ACE_Map_Entry<Event_Key, Consumer_Dispatch_Set *> *temp;
-
- if (this->map_iter_.next (temp) == 0)
- return 0;
- else
- {
- cds = temp->int_id_;
- return 1;
- }
-}
-
-int
-Event_Forwarding_Discriminator_Iterator::advance (void)
-{
- return this->map_iter_.advance ();
-}
-#endif /* _CONSUMER_MAP_C */
diff --git a/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h b/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h
deleted file mode 100644
index 09b62d007d0..00000000000
--- a/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Event_Forwarding_Discriminator.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_CONSUMER_MAP_H)
-#define _CONSUMER_MAP_H
-
-#include "ace/Map_Manager.h"
-#include "ace/Synch.h"
-#include "Event.h"
-#include "Consumer_Dispatch_Set.h"
-
-class Event_Forwarding_Discriminator
-{
- // = TITLE
- // Map events to the set of Consumer_Proxies that have subscribed
- // to receive the event.
-public:
- int bind (Event_Key event, Consumer_Dispatch_Set *cds);
- // Associate Event with the Consumer_Dispatch_Set.
-
- int unbind (Event_Key event);
- // Locate EXID and pass out parameter via INID. If found,
- // return 0, else -1.
-
- int find (Event_Key event, Consumer_Dispatch_Set *&cds);
- // Break any association of EXID.
-
-public:
- ACE_Map_Manager<Event_Key, Consumer_Dispatch_Set *, ACE_Null_Mutex> map_;
- // Map that associates <Event_Key>s (external ids) with
- // <Consumer_Dispatch_Set> *'s <internal IDs>.
-};
-
-class Event_Forwarding_Discriminator_Iterator
-{
- // = TITLE
- // Define an iterator for the Consumer Map.
-public:
- Event_Forwarding_Discriminator_Iterator (Event_Forwarding_Discriminator &mm);
- int next (Consumer_Dispatch_Set *&);
- int advance (void);
-
-private:
- ACE_Map_Iterator<Event_Key, Consumer_Dispatch_Set *, ACE_Null_Mutex> map_iter_;
- // Map we are iterating over.
-};
-#endif /* _CONSUMER_MAP_H */
diff --git a/apps/Gateway/Gateway/File_Parser.cpp b/apps/Gateway/Gateway/File_Parser.cpp
deleted file mode 100644
index bfde7a6911e..00000000000
--- a/apps/Gateway/Gateway/File_Parser.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-#if !defined (FILE_PARSER_C)
-// $Id$
-
-#define FILE_PARSER_C
-
-#include "ace/OS.h"
-#include "File_Parser.h"
-
-// This fixes a nasty bug with cfront-based compilers (like
-// Centerline).
-typedef FP::Return_Type FP_RETURN_TYPE;
-
-// File_Parser stuff.
-
-template <class ENTRY> int
-File_Parser<ENTRY>::open (const char filename[])
-{
- this->infile_ = ACE_OS::fopen (filename, "r");
- if (this->infile_ == 0)
- return -1;
- else
- return 0;
-}
-
-template <class ENTRY> int
-File_Parser<ENTRY>::close (void)
-{
- return ACE_OS::fclose (this->infile_);
-}
-
-template <class ENTRY> FP_RETURN_TYPE
-File_Parser<ENTRY>::getword (char buf[])
-{
- return this->readword (buf);
-}
-
-// Get the next string from the file via this->readword()
-// Check make sure the string forms a valid number.
-
-template <class ENTRY> FP_RETURN_TYPE
-File_Parser<ENTRY>::getint (ACE_INT32 &value)
-{
- char buf[BUFSIZ];
- FP_RETURN_TYPE read_result = this->readword (buf);
-
- if (read_result == FP::SUCCESS)
- {
- // Check to see if this is the "use the default value" symbol?
- if (buf[0] == '*')
- return FP::DEFAULT;
- else
- {
- // ptr is used for error checking with ACE_OS::strtol.
- char *ptr;
-
- // try to convert the buf to a decimal number
- value = ACE_OS::strtol (buf, &ptr, 10);
-
- // check if the buf is a decimal or not
- if (value == 0 && ptr == buf)
- return FP::PARSE_ERROR;
- else
- return FP::SUCCESS;
- }
- }
- else
- return read_result;
-}
-
-
-template <class ENTRY> FP_RETURN_TYPE
-File_Parser<ENTRY>::readword (char buf[])
-{
- int wordlength = 0;
- int c;
-
- // Skip over leading delimiters and get word.
-
- while ((c = getc (this->infile_)) != EOF && c != '\n')
- if (this->delimiter (c))
- {
- // We've reached the end of a "word".
- if (wordlength > 0)
- break;
- }
- else
- buf[wordlength++] = c;
-
- buf[wordlength] = '\0';
-
- if (c == EOF) {
- // If EOF is just a delimiter, don't return EOF so that the word
- // gets processed.
- if (wordlength > 0)
- {
- ungetc (c, this->infile_);
- return FP::SUCCESS;
- }
- else
- // else return EOF so that read loops stop
- return FP::EOFILE;
- }
- else if (c == '\n')
- {
- // if the EOLINE is just a delimiter, don't return EOLINE
- // so that the word gets processed
- if (wordlength > 0)
- ungetc (c, this->infile_);
- else
- return FP::EOLINE;
- }
-
- // Skip comments.
- if (this->comments (buf[0]))
- {
- if (this->skipline () == EOF)
- return FP::EOFILE;
- else
- return FP::COMMENT;
- }
- else
- return FP::SUCCESS;
-}
-
-template <class ENTRY> int
-File_Parser<ENTRY>::delimiter (char ch)
-{
- return ch == ' ' || ch == ',' || ch == '\t';
-}
-
-template <class ENTRY> int
-File_Parser<ENTRY>::comments (char ch)
-{
- return ch == '#';
-}
-
-template <class ENTRY> int
-File_Parser<ENTRY>::skipline (void)
-{
- // Skip the remainder of the line.
-
- int c;
-
- while ((c = getc (this->infile_)) != '\n' && c != EOF)
- continue;
-
- return c;
-}
-
-#endif /* _FILE_PARSER_C */
diff --git a/apps/Gateway/Gateway/File_Parser.h b/apps/Gateway/Gateway/File_Parser.h
deleted file mode 100644
index e32d0948621..00000000000
--- a/apps/Gateway/Gateway/File_Parser.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// File_Parser.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_FILE_PARSER)
-#define _FILE_PARSER
-
-#include "ace/OS.h"
-
-class FP
-{
- // = TITLE
- // This class serves as a namespace for the <Return_Type>.
-public:
- enum Return_Type
- {
- EOLINE,
- EOFILE,
- SUCCESS,
- COMMENT,
- DEFAULT,
- PARSE_ERROR
- };
-};
-
-template <class ENTRY>
-class File_Parser
-{
- // = TITLE
- // Class used to parse the configuration file for the
- // <Consumer_Map>.
-public:
- // = Open and Close the file specified
- int open (const char filename[]);
- int close (void);
-
- virtual FP::Return_Type read_entry (ENTRY &entry,
- int &line_number) = 0;
- // Pure virtual hook that subclasses override and use the protected
- // methods to fill in the <entry>.
-
-protected:
- FP::Return_Type getword (char buf[]);
- // Read the next ASCII word.
-
- FP::Return_Type getint (ACE_INT32 &value);
- // Read the next integer.
-
- FP::Return_Type readword (char buf[]);
- // Read the next "word," which is demarcated by <delimiter>s.
- //
- // @@ This function is inherently flawed since it doesn't take a
- // count of the size of <buf>...
-
- int delimiter (char ch);
- // Returns true if <ch> is a delimiter, i.e., ' ', ',', or '\t'.
-
- int comments (char ch);
- // Returns true if <ch> is the comment character, i.e., '#'.
-
- int skipline (void);
- // Skips to the remainder of a line, e.g., when we find a comment
- // character.
-
- FILE *infile_;
- // Pointer to the file we're reading.
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "File_Parser.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("File_Parser.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* _FILE_PARSER */
diff --git a/apps/Gateway/Gateway/Gateway.cpp b/apps/Gateway/Gateway/Gateway.cpp
deleted file mode 100644
index a6d6c3660d3..00000000000
--- a/apps/Gateway/Gateway/Gateway.cpp
+++ /dev/null
@@ -1,342 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-#include "Config_Files.h"
-#include "ace/Service_Config.h"
-#include "Event_Channel.h"
-#include "Gateway.h"
-
-class ACE_Svc_Export Gateway : public ACE_Service_Object
- // = TITLE
- // Integrates the whole Gateway application.
- //
- // = DESCRIPTION
- // This implementation uses the <Event_Channel> as the basis
- // for the <Gateway> routing.
-{
-protected:
- // = Service configurator hooks.
- virtual int init (int argc, char *argv[]);
- // Perform initialization.
-
- virtual int fini (void);
- // Perform termination when unlinked dynamically.
-
- virtual int info (char **, size_t) const;
- // Return info about this service.
-
- // = Configuration methods.
- int parse_connection_config_file (void);
- // Parse the proxy configuration file.
-
- int parse_consumer_config_file (void);
- // Parse the consumer configuration file.
-
- // = Lifecycle management methods.
- int handle_input (ACE_HANDLE);
- // Shut down the Gateway when input comes in from the controlling
- // console.
-
- int handle_signal (int signum, siginfo_t * = 0, ucontext_t * = 0);
- // Shut down the Gateway when a signal arrives.
-
- Event_Channel event_channel_;
- // The Event Channel routes events from Supplier(s) to Consumer(s)
- // using <Supplier_Handler> and <Consumer_Handler> objects.
-
- Connection_Handler_Factory connection_handler_factory_;
- // Creates the appropriate type of <Connection_Handlers>.
-};
-
-int
-Gateway::handle_signal (int signum, siginfo_t *, ucontext_t *)
-{
- if (signum > 0)
- ACE_DEBUG ((LM_DEBUG, "(%t) %S\n", signum));
-
- // Shut down the main event loop.
- ACE_Reactor::end_event_loop();
- return 0;
-}
-
-int
-Gateway::handle_input (ACE_HANDLE h)
-{
- char buf[BUFSIZ];
- // Consume the input...
- ACE_OS::read (h, buf, sizeof (buf));
-
- // Shut us down.
- return this->handle_signal ((int) h);
-}
-
-int
-Gateway::init (int argc, char *argv[])
-{
- // Parse the "command-line" arguments.
- Options::instance ()->parse_args (argc, argv);
-
- ACE_Sig_Set sig_set;
- sig_set.sig_add (SIGINT);
- sig_set.sig_add (SIGQUIT);
-
- // Register ourselves to receive signals so we can shut down
- // gracefully.
-
- if (ACE_Reactor::instance ()->register_handler (sig_set,
- this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- "register_handler"),
- -1);
-
- // Register this handler to receive events on stdin. We use this to
- // shutdown the Gateway gracefully.
- if (ACE::register_stdin_handler (this,
- ACE_Reactor::instance (),
- ACE_Thread_Manager::instance ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- "register_stdin_handler"),
- -1);
-
- // If this->performance_window_ > 0 start a timer.
-
- if (Options::instance ()->performance_window () > 0)
- {
- if (ACE_Reactor::instance ()->schedule_timer
- (&this->event_channel_, 0,
- Options::instance ()->performance_window ()) == -1)
- ACE_ERROR ((LM_ERROR,
- "(%t) %p\n",
- "schedule_timer"));
- else
- ACE_DEBUG ((LM_DEBUG,
- "starting timer for %d seconds...\n",
- Options::instance ()->performance_window ()));
- }
-
- // Are we running as a connector?
- if (Options::instance ()->enabled
- (Options::CONSUMER_CONNECTOR | Options::SUPPLIER_CONNECTOR))
- {
- // Parse the proxy configuration file.
- this->parse_connection_config_file ();
-
- // Parse the consumer config file and build the event forwarding
- // discriminator.
- this->parse_consumer_config_file ();
- }
-
- // Initialize the Event_Channel.
- return this->event_channel_.open ();
-}
-
-// This method is automatically called when the Gateway is shutdown.
-
-int
-Gateway::fini (void)
-{
- // Remove the handler that receive events on stdin. Otherwise, we
- // will crash on shutdown.
- ACE::remove_stdin_handler (ACE_Reactor::instance (),
- ACE_Thread_Manager::instance ());
-
- // Close down the event channel.
- this->event_channel_.close ();
-
- // Need to make sure we cleanup this Singleton.
- delete Options::instance ();
- return 0;
-}
-
-// Returns information on the currently active service.
-
-int
-Gateway::info (char **strp, size_t length) const
-{
- char buf[BUFSIZ];
-
- ACE_OS::sprintf (buf, "%s\t %s", "Gateway daemon",
- "# Application-level gateway\n");
-
- if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
- return -1;
- else
- ACE_OS::strncpy (*strp, buf, length);
- return ACE_OS::strlen (buf);
-}
-
-// Parse and build the proxy table.
-
-int
-Gateway::parse_connection_config_file (void)
-{
- // File that contains the proxy configuration information.
- Connection_Config_File_Parser connection_file;
- int file_empty = 1;
- int line_number = 0;
-
- if (connection_file.open (Options::instance ()->connection_config_file ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- Options::instance ()->connection_config_file ()),
- -1);
-
- // Keep track of the previous connection id to make sure the
- // connection config file isn't corrupted.
- int previous_connection_id = 0;
-
- // Read config file one line at a time.
-
- for (Connection_Config_Info pci;
- connection_file.read_entry (pci, line_number) != FP::EOFILE;
- )
- {
- file_empty = 0;
-
- // First time in check.
- if (previous_connection_id == 0)
- {
- previous_connection_id = 1;
-
- if (pci.connection_id_ != 1)
- ACE_DEBUG ((LM_DEBUG,
- "(%t) warning, the first connection id should be 1 not %d\n",
- pci.connection_id_));
- }
- else if (previous_connection_id + 1 != pci.connection_id_)
- ACE_DEBUG ((LM_DEBUG,
- "(%t) warning, connection ids should keep increasing by 1 and %d + 1 != %d\n",
- previous_connection_id,
- pci.connection_id_));
-
- // Update the last connection id to ensure that we monotonically
- // increase by 1.
- previous_connection_id = pci.connection_id_;
-
- if (Options::instance ()->enabled (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "(%t) conn id = %d, "
- "host = %s, "
- "remote port = %d, "
- "proxy role = %c, "
- "max retry timeout = %d, "
- "local port = %d, "
- "priority = %d\n",
- pci.connection_id_,
- pci.host_,
- pci.remote_port_,
- pci.connection_role_,
- pci.max_retry_timeout_,
- pci.local_port_,
- pci.priority_));
-
- pci.event_channel_ = &this->event_channel_;
-
- // Create the appropriate type of Proxy.
- Connection_Handler *connection_handler;
-
- ACE_ALLOCATOR_RETURN (connection_handler,
- this->connection_handler_factory_.make_connection_handler (pci),
- -1);
-
- // Bind the new Connection_Handler to the connection ID.
- this->event_channel_.bind_proxy (connection_handler);
- }
-
- // Keep track of the next available connection id, which is
- // necessary for Peers that connect with us, rather than vice versa.
- Options::instance ()->connection_id () = previous_connection_id + 1;
-
- if (file_empty)
- ACE_ERROR ((LM_WARNING,
- "warning: connection connection_handler configuration file was empty\n"));
- return 0;
-}
-
-int
-Gateway::parse_consumer_config_file (void)
-{
- // File that contains the consumer event forwarding information.
- Consumer_Config_File_Parser consumer_file;
- int file_empty = 1;
- int line_number = 0;
-
- if (consumer_file.open (Options::instance ()->consumer_config_file ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- Options::instance ()->consumer_config_file ()),
- -1);
-
- // Read config file line at a time.
- for (Consumer_Config_Info cci_entry;
- consumer_file.read_entry (cci_entry, line_number) != FP::EOFILE;
- )
- {
- file_empty = 0;
-
- if (Options::instance ()->enabled (Options::DEBUG))
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) connection id = %d, payload = %d, "
- "number of consumers = %d\n",
- cci_entry.connection_id_,
- cci_entry.type_,
- cci_entry.total_consumers_));
-
- for (int i = 0; i < cci_entry.total_consumers_; i++)
- ACE_DEBUG ((LM_DEBUG,
- "(%t) destination[%d] = %d\n",
- i,
- cci_entry.consumers_[i]));
- }
-
- Consumer_Dispatch_Set *dispatch_set;
- ACE_NEW_RETURN (dispatch_set,
- Consumer_Dispatch_Set,
- -1);
-
- Event_Key event_addr (cci_entry.connection_id_,
- cci_entry.type_);
-
- // Add the Consumers to the Dispatch_Set.
- for (int i = 0; i < cci_entry.total_consumers_; i++)
- {
- Connection_Handler *connection_handler = 0;
-
- // Lookup destination and add to Consumer_Dispatch_Set set
- // if found.
- if (this->event_channel_.find_proxy (cci_entry.consumers_[i],
- connection_handler) != -1)
- dispatch_set->insert (connection_handler);
- else
- ACE_ERROR ((LM_ERROR,
- "(%t) not found: destination[%d] = %d\n",
- i,
- cci_entry.consumers_[i]));
- }
-
- this->event_channel_.subscribe (event_addr, dispatch_set);
- }
-
- if (file_empty)
- ACE_ERROR ((LM_WARNING,
- "warning: consumer map configuration file was empty\n"));
- return 0;
-}
-
-// The following is a "Factory" used by the ACE_Service_Config and
-// svc.conf file to dynamically initialize the state of the Gateway.
-
-ACE_SVC_FACTORY_DEFINE (Gateway)
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Node<Connection_Handler *>;
-template class ACE_Unbounded_Set<Connection_Handler *>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Node<Connection_Handler *>
-#pragma instantiate ACE_Unbounded_Set<Connection_Handler *>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
diff --git a/apps/Gateway/Gateway/Gateway.dsp b/apps/Gateway/Gateway/Gateway.dsp
deleted file mode 100644
index cba54522af3..00000000000
--- a/apps/Gateway/Gateway/Gateway.dsp
+++ /dev/null
@@ -1,96 +0,0 @@
-# Microsoft Developer Studio Project File - Name="Gateway" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=Gateway - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Gateway.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Gateway.mak" CFG="Gateway - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Gateway - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "_WINDOWS" /D "WIN32" /D "_DEBUG" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-# Begin Target
-
-# Name "Gateway - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\Concrete_Connection_Handlers.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Config_Files.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connection_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connection_Handler_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connection_Handler_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Channel.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Forwarding_Discriminator.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\File_Parser.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gateway.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Options.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/apps/Gateway/Gateway/Gateway.dsw b/apps/Gateway/Gateway/Gateway.dsw
deleted file mode 100644
index a54d8e89983..00000000000
--- a/apps/Gateway/Gateway/Gateway.dsw
+++ /dev/null
@@ -1,44 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 5.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "Gateway"=.\Gateway.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "gatewayd"=.\gatewayd.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name Gateway
- End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/Gateway/Gateway/Gateway.h b/apps/Gateway/Gateway/Gateway.h
deleted file mode 100644
index 5c85f6e696c..00000000000
--- a/apps/Gateway/Gateway/Gateway.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Gateway.h
-//
-// = DESCRIPTION
-// Since the Gateway is an <ACE_Service_Object>, this file defines
-// the entry point into the Service Configurator framework.
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (ACE_GATEWAY)
-#define ACE_GATEWAY
-
-#include "ace/OS.h"
-
-ACE_SVC_FACTORY_DECLARE (Gateway)
-
-#endif /* ACE_GATEWAY */
-
diff --git a/apps/Gateway/Gateway/Gateway4.mak b/apps/Gateway/Gateway/Gateway4.mak
deleted file mode 100644
index 510a9702b61..00000000000
--- a/apps/Gateway/Gateway/Gateway4.mak
+++ /dev/null
@@ -1,1592 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-!IF "$(CFG)" == ""
-CFG=Gateway - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to Gateway - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "gatewayd - Win32 Debug" && "$(CFG)" != "Gateway - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Gateway4.mak" CFG="Gateway - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "gatewayd - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "Gateway - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "Gateway - Win32 Debug"
-
-!IF "$(CFG)" == "gatewayd - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "gatewayd\Debug"
-# PROP BASE Intermediate_Dir "gatewayd\Debug"
-# PROP BASE Target_Dir "gatewayd"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "gatewayd_Debug"
-# PROP Target_Dir "gatewayd"
-OUTDIR=.\.
-INTDIR=.\gatewayd_Debug
-
-ALL : "Gateway - Win32 Debug" "$(OUTDIR)\gatewayd.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\gatewayd.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\gatewayd.exe"
- -@erase "$(OUTDIR)\gatewayd.ilk"
- -@erase "$(OUTDIR)\gatewayd.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE"\
- /Fp"$(INTDIR)/gatewayd.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\gatewayd_Debug/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/gatewayd.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 Gateway.lib aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-LINK32_FLAGS=Gateway.lib aced.lib kernel32.lib user32.lib gdi32.lib\
- winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib\
- uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/gatewayd.pdb" /debug /machine:I386\
- /out:"$(OUTDIR)/gatewayd.exe"
-LINK32_OBJS= \
- "$(INTDIR)\gatewayd.obj" \
- "$(OUTDIR)\Gateway.lib"
-
-"$(OUTDIR)\gatewayd.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "Gateway - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Gateway\Debug"
-# PROP BASE Intermediate_Dir "Gateway\Debug"
-# PROP BASE Target_Dir "Gateway"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "Gateway_Debug"
-# PROP Target_Dir "Gateway"
-OUTDIR=.\.
-INTDIR=.\Gateway_Debug
-
-ALL : "$(OUTDIR)\Gateway.dll"
-
-CLEAN :
- -@erase "$(INTDIR)\Concrete_Connection_Handlers.obj"
- -@erase "$(INTDIR)\Config_Files.obj"
- -@erase "$(INTDIR)\Connection_Handler.obj"
- -@erase "$(INTDIR)\Connection_Handler_Acceptor.obj"
- -@erase "$(INTDIR)\Connection_Handler_Connector.obj"
- -@erase "$(INTDIR)\Event_Channel.obj"
- -@erase "$(INTDIR)\Event_Forwarding_Discriminator.obj"
- -@erase "$(INTDIR)\File_Parser.obj"
- -@erase "$(INTDIR)\Gateway.obj"
- -@erase "$(INTDIR)\Options.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\Gateway.dll"
- -@erase "$(OUTDIR)\Gateway.exp"
- -@erase "$(OUTDIR)\Gateway.ilk"
- -@erase "$(OUTDIR)\Gateway.lib"
- -@erase "$(OUTDIR)\Gateway.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS"\
- /Fp"$(INTDIR)/Gateway.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\Gateway_Debug/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/Gateway.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-LINK32_FLAGS=aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:yes\
- /pdb:"$(OUTDIR)/Gateway.pdb" /debug /machine:I386 /out:"$(OUTDIR)/Gateway.dll"\
- /implib:"$(OUTDIR)/Gateway.lib"
-LINK32_OBJS= \
- "$(INTDIR)\Concrete_Connection_Handlers.obj" \
- "$(INTDIR)\Config_Files.obj" \
- "$(INTDIR)\Connection_Handler.obj" \
- "$(INTDIR)\Connection_Handler_Acceptor.obj" \
- "$(INTDIR)\Connection_Handler_Connector.obj" \
- "$(INTDIR)\Event_Channel.obj" \
- "$(INTDIR)\Event_Forwarding_Discriminator.obj" \
- "$(INTDIR)\File_Parser.obj" \
- "$(INTDIR)\Gateway.obj" \
- "$(INTDIR)\Options.obj"
-
-"$(OUTDIR)\Gateway.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-################################################################################
-# Begin Target
-
-# Name "gatewayd - Win32 Debug"
-################################################################################
-# Begin Project Dependency
-
-# Project_Dep_Name "Gateway"
-
-!IF "$(CFG)" == "gatewayd - Win32 Debug"
-
-"Gateway - Win32 Debug" :
- $(MAKE) /$(MAKEFLAGS) /F ".\Gateway4.mak" CFG="Gateway - Win32 Debug"
-
-!ENDIF
-
-# End Project Dependency
-################################################################################
-# Begin Source File
-
-SOURCE=.\gatewayd.cpp
-
-!IF "$(CFG)" == "gatewayd - Win32 Debug"
-
-DEP_CPP_GATEW=\
- "..\..\..\ace\config-win32.h"\
- ".\Gateway.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\gatewayd.obj" : $(SOURCE) $(DEP_CPP_GATEW) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-# End Target
-################################################################################
-# Begin Target
-
-# Name "Gateway - Win32 Debug"
-################################################################################
-# Begin Source File
-
-SOURCE=.\Config_Files.cpp
-DEP_CPP_CONFI=\
- "..\..\..\ace\config-win32.h"\
- ".\Config_Files.h"\
- ".\Event.h"\
- ".\File_Parser.cpp"\
- ".\File_Parser.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Config_Files.obj" : $(SOURCE) $(DEP_CPP_CONFI) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Event_Channel.cpp
-DEP_CPP_EVENT=\
- "..\..\..\ace\config-win32.h"\
- ".\Config_Files.h"\
- ".\Connection_Handler.h"\
- ".\Connection_Handler_Acceptor.h"\
- ".\Connection_Handler_Connector.h"\
- ".\Consumer_Dispatch_Set.h"\
- ".\Event.h"\
- ".\Event_Channel.h"\
- ".\Event_Forwarding_Discriminator.h"\
- ".\File_Parser.cpp"\
- ".\File_Parser.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Event_Channel.obj" : $(SOURCE) $(DEP_CPP_EVENT) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Event_Forwarding_Discriminator.cpp
-DEP_CPP_EVENT_=\
- "..\..\..\ace\config-win32.h"\
- ".\Consumer_Dispatch_Set.h"\
- ".\Event.h"\
- ".\Event_Forwarding_Discriminator.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Event_Forwarding_Discriminator.obj" : $(SOURCE) $(DEP_CPP_EVENT_)\
- "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Gateway.cpp
-DEP_CPP_GATEWA=\
- "..\..\..\ace\config-win32.h"\
- ".\Config_Files.h"\
- ".\Connection_Handler.h"\
- ".\Connection_Handler_Acceptor.h"\
- ".\Connection_Handler_Connector.h"\
- ".\Consumer_Dispatch_Set.h"\
- ".\Event.h"\
- ".\Event_Channel.h"\
- ".\Event_Forwarding_Discriminator.h"\
- ".\File_Parser.cpp"\
- ".\File_Parser.h"\
- ".\Gateway.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Gateway.obj" : $(SOURCE) $(DEP_CPP_GATEWA) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Options.cpp
-DEP_CPP_OPTIO=\
- "..\..\..\ace\config-win32.h"\
- ".\Event.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Get_Opt.h"\
- {$(INCLUDE)}"\ace\Get_Opt.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Options.obj" : $(SOURCE) $(DEP_CPP_OPTIO) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Connection_Handler.cpp
-DEP_CPP_CONNE=\
- "..\..\..\ace\config-win32.h"\
- ".\Concrete_Connection_Handlers.h"\
- ".\Config_Files.h"\
- ".\Connection_Handler.h"\
- ".\Connection_Handler_Acceptor.h"\
- ".\Connection_Handler_Connector.h"\
- ".\Consumer_Dispatch_Set.h"\
- ".\Event.h"\
- ".\Event_Channel.h"\
- ".\Event_Forwarding_Discriminator.h"\
- ".\File_Parser.cpp"\
- ".\File_Parser.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Connection_Handler.obj" : $(SOURCE) $(DEP_CPP_CONNE) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Connection_Handler_Acceptor.cpp
-DEP_CPP_CONNEC=\
- "..\..\..\ace\config-win32.h"\
- ".\Config_Files.h"\
- ".\Connection_Handler.h"\
- ".\Connection_Handler_Acceptor.h"\
- ".\Connection_Handler_Connector.h"\
- ".\Consumer_Dispatch_Set.h"\
- ".\Event.h"\
- ".\Event_Channel.h"\
- ".\Event_Forwarding_Discriminator.h"\
- ".\File_Parser.cpp"\
- ".\File_Parser.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Connection_Handler_Acceptor.obj" : $(SOURCE) $(DEP_CPP_CONNEC)\
- "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Connection_Handler_Connector.cpp
-DEP_CPP_CONNECT=\
- "..\..\..\ace\config-win32.h"\
- ".\Config_Files.h"\
- ".\Connection_Handler.h"\
- ".\Connection_Handler_Connector.h"\
- ".\Event.h"\
- ".\File_Parser.cpp"\
- ".\File_Parser.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Connection_Handler_Connector.obj" : $(SOURCE) $(DEP_CPP_CONNECT)\
- "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Concrete_Connection_Handlers.cpp
-DEP_CPP_CONCR=\
- "..\..\..\ace\config-win32.h"\
- ".\Concrete_Connection_Handlers.h"\
- ".\Config_Files.h"\
- ".\Connection_Handler.h"\
- ".\Connection_Handler_Acceptor.h"\
- ".\Connection_Handler_Connector.h"\
- ".\Consumer_Dispatch_Set.h"\
- ".\Event.h"\
- ".\Event_Channel.h"\
- ".\Event_Forwarding_Discriminator.h"\
- ".\File_Parser.cpp"\
- ".\File_Parser.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Concrete_Connection_Handlers.obj" : $(SOURCE) $(DEP_CPP_CONCR)\
- "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\File_Parser.cpp
-DEP_CPP_FILE_=\
- "..\..\..\ace\config-win32.h"\
- ".\File_Parser.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\File_Parser.obj" : $(SOURCE) $(DEP_CPP_FILE_) "$(INTDIR)"
-
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/apps/Gateway/Gateway/Gateway4.mdp b/apps/Gateway/Gateway/Gateway4.mdp
deleted file mode 100644
index c63046475dd..00000000000
--- a/apps/Gateway/Gateway/Gateway4.mdp
+++ /dev/null
Binary files differ
diff --git a/apps/Gateway/Gateway/IO_Handler.cpp b/apps/Gateway/Gateway/IO_Handler.cpp
deleted file mode 100644
index ba1b355b3ba..00000000000
--- a/apps/Gateway/Gateway/IO_Handler.cpp
+++ /dev/null
@@ -1,710 +0,0 @@
-// $Id$
-
-#include "Consumer_Entry.h"
-#include "IO_Handler_Connector.h"
-
-// Convenient short-hands.
-#define CO CONDITION
-#define MU MAP_MUTEX
-
-// The total number of bytes sent/received on this channel.
-
-size_t
-IO_Handler::total_bytes (void)
-{
- return this->total_bytes_;
-}
-
-void
-IO_Handler::total_bytes (size_t bytes)
-{
- this->total_bytes_ += bytes;
-}
-
-IO_Handler::IO_Handler (Consumer_Map *consumer_map,
- IO_Handler_Connector *ioc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : ACE_Svc_Handler<ACE_SOCK_STREAM, SYNCH_STRATEGY> (thr_mgr),
- consumer_map_ (consumer_map),
- id_ (-1),
- total_bytes_ (0),
- state_ (IO_Handler::IDLE),
- connector_ (ioc),
- timeout_ (1),
- max_timeout_ (IO_Handler::MAX_RETRY_TIMEOUT),
- socket_queue_size_ (socket_queue_size)
-{
-}
-
-// Set the associated channel.
-
-void
-IO_Handler::active (int a)
-{
- this->state (a == 0 ? IO_Handler::IDLE : IO_Handler::ESTABLISHED);
-}
-
-// Get the associated channel.
-
-int
-IO_Handler::active (void)
-{
- return this->state () == IO_Handler::ESTABLISHED;
-}
-
-// Set the direction.
-
-void
-IO_Handler::direction (char d)
-{
- this->direction_ = d;
-}
-
-// Get the direction.
-
-char
-IO_Handler::direction (void)
-{
- return this->direction_;
-}
-
-// Sets the timeout delay.
-
-void
-IO_Handler::timeout (int to)
-{
- if (to > this->max_timeout_)
- to = this->max_timeout_;
-
- this->timeout_ = to;
-}
-
-// Recalculate the current retry timeout delay using exponential
-// backoff. Returns the original timeout (i.e., before the
-// recalculation).
-
-int
-IO_Handler::timeout (void)
-{
- int old_timeout = this->timeout_;
- this->timeout_ *= 2;
-
- if (this->timeout_ > this->max_timeout_)
- this->timeout_ = this->max_timeout_;
-
- return old_timeout;
-}
-
-// Sets the max timeout delay.
-
-void
-IO_Handler::max_timeout (int mto)
-{
- this->max_timeout_ = mto;
-}
-
-// Gets the max timeout delay.
-
-int
-IO_Handler::max_timeout (void)
-{
- return this->max_timeout_;
-}
-
-// Restart connection asynchronously when timeout occurs.
-
-int
-IO_Handler::handle_timeout (const ACE_Time_Value &, const void *)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%t) attempting to reconnect IO_Handler %d with timeout = %d\n",
- this->id (), this->timeout_));
- return this->connector_->initiate_connection (this, ACE_Synch_Options::asynch);
-}
-
-// Restart connection (blocking_semantics dicates whether we
-// restart synchronously or asynchronously).
-
-int
-IO_Handler::reinitiate_connection (void)
-{
- // Skip over deactivated descriptors.
- if (this->get_handle () != -1)
- {
- // Make sure to close down peer to reclaim descriptor.
- this->peer ().close ();
-
-#if 0
-// if (this->state () == FAILED)
-// {
- // Reinitiate timeout to improve reconnection time.
-// this->timeout (1);
-#endif
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) scheduling reinitiation of IO_Handler %d\n",
- this->id ()));
-
- // Reschedule ourselves to try and connect again.
- if (ACE_Service_Config::reactor ()->schedule_timer
- (this, 0, this->timeout ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "schedule_timer"), -1);
- }
- return 0;
-}
-
-// Handle shutdown of the IO_Handler object.
-
-int
-IO_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down IO_Handler %d on handle %d\n",
- this->id (), this->get_handle ()));
-
- return this->reinitiate_connection ();
-}
-
-// Set the state of the channel.
-
-void
-IO_Handler::state (IO_Handler::State s)
-{
- this->state_ = s;
-}
-
-// Perform the first-time initiation of a connection to the peer.
-
-int
-IO_Handler::initialize_connection (void)
-{
- this->state_ = IO_Handler::ESTABLISHED;
-
- // Restart the timeout to 1.
- this->timeout (1);
-
-#if defined (ASSIGN_SUPPLIER_ID)
- // Action that sends the route id to the peerd.
-
- CONN_ID id = htons (this->id ());
-
- ssize_t n = this->peer ().send ((const void *) &id, sizeof id);
-
- if (n != sizeof id)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- n == 0 ? "gatewayd has closed down unexpectedly" : "send"),
- -1);
-#endif /* ASSIGN_SUPPLIER_ID */
- return 0;
-}
-
-// Set the size of the socket queue.
-
-void
-IO_Handler::socket_queue_size (void)
-{
- if (this->socket_queue_size_ > 0)
- {
- int option = this->direction_ == 'S' ? SO_RCVBUF : SO_SNDBUF;
-
- if (this->peer ().set_option (SOL_SOCKET, option,
- &this->socket_queue_size_, sizeof (int)) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "set_option"));
- }
-}
-
-// Upcall from the ACE_Acceptor::handle_input() that
-// delegates control to our application-specific IO_Handler.
-
-int
-IO_Handler::open (void *a)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) IO_Handler's fd = %d\n",
- this->peer ().get_handle ()));
-
- // Set the size of the socket queue.
- this->socket_queue_size ();
-
- // Turn on non-blocking I/O.
- if (this->peer ().enable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Call down to the base class to activate and register this handler.
- if (this->ACE_Svc_Handler<ACE_SOCK_STREAM, SYNCH_STRATEGY>::open (a) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "activate"), -1);
-
- return this->initialize_connection ();
-}
-
-// Return the current state of the channel.
-
-IO_Handler::State
-IO_Handler::state (void)
-{
- return this->state_;
-}
-
-void
-IO_Handler::id (CONN_ID id)
-{
- this->id_ = id;
-}
-
-CONN_ID
-IO_Handler::id (void)
-{
- return this->id_;
-}
-
-// Set the peer's address information.
-int
-IO_Handler::bind (const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- CONN_ID id)
-{
- this->remote_addr_ = remote_addr;
- this->local_addr_ = local_addr;
- this->id_ = id;
- return 0;
-}
-
-ACE_INET_Addr &
-IO_Handler::remote_addr (void)
-{
- return this->remote_addr_;
-}
-
-ACE_INET_Addr &
-IO_Handler::local_addr (void)
-{
- return this->local_addr_;
-}
-
-// Constructor sets the consumer map pointer.
-
-Consumer_Handler::Consumer_Handler (Consumer_Map *consumer_map,
- IO_Handler_Connector *ioc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : IO_Handler (consumer_map, ioc, thr_mgr, socket_queue_size)
-{
- this->direction_ = 'C';
- this->msg_queue ()->high_water_mark (Consumer_Handler::QUEUE_SIZE);
-}
-
-// This method should be called only when the peer shuts down
-// unexpectedly. This method simply marks the IO_Handler as
-// having failed so that handle_close () can reconnect.
-
-int
-Consumer_Handler::handle_input (ACE_HANDLE)
-{
- char buf[1];
-
- this->state (IO_Handler::FAILED);
-
- switch (this->peer ().recv (buf, sizeof buf))
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has failed unexpectedly for Output IO_Handler %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has shutdown unexpectedly for Output IO_Handler %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer is sending input on Output IO_Handler %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- }
-}
-
-// Perform a non-blocking put() of event MB. If we are unable to
-// send the entire event the remainder is re-queued at the *front* of
-// the Event_List.
-
-int
-Consumer_Handler::nonblk_put (ACE_Message_Block *mb)
-{
- // Try to send the event. If we don't send it all (e.g., due to
- // flow control), then re-queue the remainder at the head of the
- // Event_List and ask the ACE_Reactor to inform us (via
- // handle_output()) when it is possible to try again.
-
- ssize_t n = this->send (mb);
-
- if (n == -1)
- {
- // Things have gone wrong, let's try to close down and set up a new reconnection.
- this->state (IO_Handler::FAILED);
- this->handle_close ();
- return -1;
- }
- else if (errno == EWOULDBLOCK) // Didn't manage to send everything.
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) queueing activated on handle %d to routing id %d\n",
- this->get_handle (), this->id ()));
-
- // ACE_Queue in *front* of the list to preserve order.
- if (this->msg_queue ()->enqueue_head
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enqueue_head"), -1);
-
- // Tell ACE_Reactor to call us back when we can send again.
- else if (ACE_Service_Config::reactor ()->
- schedule_wakeup (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "schedule_wakeup"), -1);
- return 0;
- }
- else
- return n;
-}
-
-ssize_t
-Consumer_Handler::send (ACE_Message_Block *mb)
-{
- ssize_t len = mb->length ();
- ssize_t n = this->peer ().send (mb->rd_ptr (), len);
-
- if (n <= 0)
- return errno == EWOULDBLOCK ? 0 : n;
- else if (n < len)
- // Re-adjust pointer to skip over the part we did send.
- mb->rd_ptr (n);
- else /* if (n == length) */
- {
- // The whole event is sent, we can now safely deallocate the
- // buffer. Note that this should decrement a reference count...
- delete mb;
- errno = 0;
- }
- this->total_bytes (n);
- return n;
-}
-
-// Finish sending an event when flow control conditions abate.
-// This method is automatically called by the ACE_Reactor.
-
-int
-Consumer_Handler::handle_output (ACE_HANDLE)
-{
- ACE_Message_Block *mb = 0;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) in handle_output on handle %d\n",
- this->get_handle ()));
- // The list had better not be empty, otherwise there's a bug!
-
- if (this->msg_queue ()->dequeue_head
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) != -1)
- {
- switch (this->nonblk_put (mb))
- {
- case 0: // Partial send.
- ACE_ASSERT (errno == EWOULDBLOCK);
- // Didn't write everything this time, come back later...
- break;
-
- case -1:
- // Caller is responsible for freeing a ACE_Message_Block if failures occur.
- delete mb;
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "transmission failure"));
-
- /* FALLTHROUGH */
- default: // Sent the whole thing.
-
- // If we succeed in writing the entire event (or we did not
- // fail due to EWOULDBLOCK) then check if there are more
- // events on the Event_List. If there aren't, tell the
- // ACE_Reactor not to notify us anymore (at least until
- // there are new events queued up).
-
- if (this->msg_queue ()->is_empty ())
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) queueing deactivated on handle %d to routing id %d\n",
- this->get_handle (), this->id ()));
-
-
- if (ACE_Service_Config::reactor ()->
- cancel_wakeup (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "cancel_wakeup"));
- }
- }
- }
- else
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "dequeue_head"));
- return 0;
-}
-
-// Send an event to a peer (may queue if necessary).
-
-int
-Consumer_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- if (this->msg_queue ()->is_empty ())
- // Try to send the event *without* blocking!
- return this->nonblk_put (mb);
- else
- // If we have queued up events due to flow control then just
- // enqueue and return.
- return this->msg_queue ()->enqueue_tail
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Constructor sets the consumer map pointer and the connector
-// pointer.
-
-Supplier_Handler::Supplier_Handler (Consumer_Map *consumer_map,
- IO_Handler_Connector *ioc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : msg_frag_ (0),
- IO_Handler (consumer_map, ioc, thr_mgr, socket_queue_size)
-{
- this->direction_ = 'S';
- this->msg_queue ()->high_water_mark (0);
-}
-
-// Receive a Peer event from peerd. Handles fragmentation.
-//
-// The routing event returned from recv consists of two parts:
-// 1. The Address part, contains the virtual routing id.
-// 2. The Data part, which contains the actual data to be routed.
-//
-// The reason for having two parts is to shield the higher layers
-// of software from knowledge of the event structure.
-
-int
-Supplier_Handler::recv (ACE_Message_Block *&forward_addr)
-{
- Event *event;
- ssize_t len;
- ssize_t n = 0;
- size_t offset = 0;
-
- if (this->msg_frag_ == 0)
- // No existing fragment...
- ACE_NEW_RETURN (this->msg_frag_,
- ACE_Message_Block (sizeof (Event)),
- -1);
-
- event = (Event *) this->msg_frag_->rd_ptr ();
-
- const ssize_t HEADER_SIZE = sizeof (Event_Header);
- ssize_t header_bytes_left_to_read = HEADER_SIZE - this->msg_frag_->length ();
-
- if (header_bytes_left_to_read > 0)
- {
- n = this->peer ().recv (this->msg_frag_->wr_ptr (),
- header_bytes_left_to_read);
-
- if (n == -1 /* error */
- || n == 0 /* EOF */)
- {
- ACE_ERROR ((LM_ERROR, "%p\n",
- "Recv error during header read "));
- ACE_DEBUG ((LM_DEBUG,
- "attempted to read %d\n",
- header_bytes_left_to_read));
- delete this->msg_frag_;
- this->msg_frag_ = 0;
- return n;
- }
-
- // Bump the write pointer by the amount read.
- this->msg_frag_->wr_ptr (n);
-
- // At this point we may or may not have the ENTIRE header.
- if (this->msg_frag_->length () < HEADER_SIZE)
- {
- ACE_DEBUG ((LM_DEBUG,
- "Partial header received: only %d bytes\n",
- this->msg_frag_->length ()));
- // Notify the caller that we didn't get an entire event.
- errno = EWOULDBLOCK;
- return -1;
- }
- }
-
- // At this point there is a complete, valid header in msg_frag_
- len = sizeof event->buf_ + HEADER_SIZE - this->msg_frag_->length ();
-
- ssize_t m = this->peer ().recv (event->buf_ + offset, len);
-
- // Try to receive the remainder of the event
-
- switch (m)
- {
- case -1:
- if (errno == EWOULDBLOCK)
- {
- // This shouldn't happen since the ACE_Reactor
- // just triggered us to handle pending I/O!
- ACE_DEBUG ((LM_DEBUG, "(%t) unexpected recv failure\n"));
- errno = EWOULDBLOCK;
- return -1;
- }
- else
- /* FALLTHROUGH */;
-
- case 0: // Premature EOF.
- delete this->msg_frag_;
- this->msg_frag_ = 0;
- return 0;
-
- default:
- if (m != len)
- // Re-adjust pointer to skip over the part we've read.
- {
- this->msg_frag_->wr_ptr (m);
- errno = EWOULDBLOCK;
- return -1; // Inform caller that we didn't get the whole event.
- }
- else
- {
- // Set the write pointer at 1 past the end of the event.
- this->msg_frag_->wr_ptr (m);
-
- // Set the read pointer to the beginning of the event.
- this->msg_frag_->rd_ptr (this->msg_frag_->base ());
-
- // Allocate an event forwarding header and chain the data
- // portion onto its continuation field.
- ACE_NEW_RETURN (forward_addr,
- ACE_Message_Block (sizeof (Event_Addr),
- ACE_Message_Block::MB_PROTO,
- this->msg_frag_),
- -1);
-
- Event_Addr event_addr (this->id (), event->header_.routing_id_, 0);
- // Copy the forwarding address from the Event_Addr into
- // forward_addr.
- forward_addr->copy ((char *) &event_addr, sizeof (Event));
-
- // Reset the pointer to indicate we've got an entire event.
- this->msg_frag_ = 0;
- }
- this->total_bytes (m + n);
-#if defined (VERBOSE)
- ACE_DEBUG ((LM_DEBUG, "(%t) channel id = %d, route id = %d, len = %d, payload = %*s",
- event_addr.conn_id_, event->header_.routing_id_, event->header_.len_,
- event->header_.len_, event->buf_));
-#else
- ACE_DEBUG ((LM_DEBUG, "(%t) route id = %d, cur len = %d, total bytes read = %d\n",
- event->header_.routing_id_, event->header_.len_, this->total_bytes ()));
-#endif
- return m + n;
- }
-}
-
-// Receive various types of input (e.g., Peer event from the
-// gatewayd, as well as stdio).
-
-int
-Supplier_Handler::handle_input (ACE_HANDLE)
-{
- ACE_Message_Block *forward_addr = 0;
-
- switch (this->recv (forward_addr))
- {
- case 0:
- // Note that a peer should never initiate a shutdown.
- this->state (IO_Handler::FAILED);
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has closed down unexpectedly for Input IO_Handler %d\n",
- this->id ()), -1);
- /* NOTREACHED */
- case -1:
- if (errno == EWOULDBLOCK)
- // A short-read, we'll come back and finish it up later on!
- return 0;
- else // A weird problem occurred, shut down and start again.
- {
- this->state (IO_Handler::FAILED);
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p for Input IO_Handler %d\n",
- "Peer has failed unexpectedly",
- this->id ()), -1);
- }
- /* NOTREACHED */
- default:
- return this->forward (forward_addr);
- }
-}
-
-// Route an event to its appropriate destination.
-
-int
-Supplier_Handler::forward (ACE_Message_Block *forward_addr)
-{
- // We got a valid event, so determine its virtual routing id,
- // which is stored in the first of the two event blocks chained
- // together.
-
- Event_Addr *forwarding_key = (Event_Addr *) forward_addr->rd_ptr ();
-
- // Skip over the address portion.
- const ACE_Message_Block *const data = forward_addr->cont ();
-
- // RE points to the routing entry located for this routing id.
- Consumer_Entry *re = 0;
-
- if (this->consumer_map_->find (*forwarding_key, re) != -1)
- {
- // Check to see if there are any destinations.
- if (re->destinations ()->size () == 0)
- ACE_DEBUG ((LM_WARNING,
- "there are no active destinations for this event currently\n"));
-
- else // There are destinations, so forward the event.
- {
- Consumer_Entry::ENTRY_SET *esp = re->destinations ();
- Consumer_Entry::ENTRY_ITERATOR si (*esp);
-
- for (IO_Handler **channel = 0; si.next (channel) != 0; si.advance ())
- {
- // Only process active channels.
- if ((*channel)->active ())
- {
- // Clone the event portion (should be doing reference counting here...)
- ACE_Message_Block *newmsg = data->clone ();
-
- ACE_DEBUG ((LM_DEBUG, "(%t) sending to peer %d\n", (*channel)->id ()));
-
- if ((*channel)->put (newmsg) == -1)
- {
- if (errno == EWOULDBLOCK) // The queue has filled up!
- ACE_ERROR ((LM_ERROR, "(%t) %p\n",
- "gateway is flow controlled, so we're dropping events"));
- else
- ACE_ERROR ((LM_ERROR, "(%t) %p transmission error to route %d\n",
- "put", (*channel)->id ()));
-
- // Caller is responsible for freeing a ACE_Message_Block if failures occur.
- delete newmsg;
- }
- }
- }
- // Will become superfluous once we have reference counting...
- delete forward_addr;
- return 0;
- }
- }
- delete forward_addr;
- // Failure return.
- ACE_ERROR ((LM_DEBUG, "(%t) find failed on conn id = %d, logical id = %d, payload = %d\n",
- forwarding_key->conn_id_, forwarding_key->logical_id_, forwarding_key->payload_));
- return 0;
-}
-
-#if defined (ACE_TEMPLATES_REQUIRE_SPECIALIZATION)
-template class ACE_Map_Manager<Event_Addr, Consumer_Entry *, MAP_MUTEX>;
-template class ACE_Map_Iterator<Event_Addr, Consumer_Entry *, MAP_MUTEX>;
-template class ACE_Map_Entry<Event_Addr, Consumer_Entry *>;
-#endif /* ACE_TEMPLATES_REQUIRE_SPECIALIZATION */
diff --git a/apps/Gateway/Gateway/IO_Handler.h b/apps/Gateway/Gateway/IO_Handler.h
deleted file mode 100644
index 7bda073f09b..00000000000
--- a/apps/Gateway/Gateway/IO_Handler.h
+++ /dev/null
@@ -1,224 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// IO_Handler.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_IO_HANDLER)
-#define _IO_HANDLER
-
-#include "ace/Service_Config.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/Svc_Handler.h"
-#include "Consumer_Map.h"
-#include "Consumer_Entry.h"
-#include "Event.h"
-
-// Forward declaration.
-class IO_Handler_Connector;
-
-class IO_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, SYNCH_STRATEGY>
- // = TITLE
- // IO_Handler contains info about connection state and addressing.
- //
- // = DESCRIPTION
- // The IO_Handler classes process events sent from the peers to the
- // gateway. These classes works as follows:
- //
- // 1. IO_Handler_Connector creates a number of connections with the set of
- // peers specified in a configuration file.
- //
- // 2. For each peer that connects successfully, IO_Handler_Connector
- // creates an IO_Handler object. Each object assigns a unique routing
- // id to its associated peer. The Handlers are used by gatewayd
- // that to receive, route, and forward events from source peer(s)
- // to destination peer(s).
-{
-public:
- IO_Handler (Consumer_Map *,
- IO_Handler_Connector *,
- ACE_Thread_Manager * = 0,
- int socket_queue_size = 0);
-
- virtual int open (void * = 0);
- // Initialize and activate a single-threaded IO_Handler (called by
- // ACE_Connector::handle_output()).
-
- int bind (const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- CONN_ID);
- // Set the peer's addressing and routing information.
-
- ACE_INET_Addr &remote_addr (void);
- // Returns the peer's routing address.
-
- ACE_INET_Addr &local_addr (void);
- // Returns our local address.
-
- // = Set/get routing id.
- CONN_ID id (void);
- void id (CONN_ID);
-
- // = Set/get the current state of the IO_Handler.
- enum State
- {
- IDLE = 1, // Prior to initialization.
- CONNECTING, // During connection establishment.
- ESTABLISHED, // IO_Handler is established and active.
- DISCONNECTING, // IO_Handler is in the process of connecting.
- FAILED // IO_Handler has failed.
- };
-
- // = Set/get the current state.
- State state (void);
- void state (State);
-
- // = Set/get the current retry timeout delay.
- int timeout (void);
- void timeout (int);
-
- // = Set/get the maximum retry timeout delay.
- int max_timeout (void);
- void max_timeout (int);
-
- // = Set/get IO_Handler activity status.
- int active (void);
- void active (int);
-
- // = Set/get direction (necessary for error checking).
- char direction (void);
- void direction (char);
-
- // = The total number of bytes sent/received on this channel.
- size_t total_bytes (void);
- void total_bytes (size_t bytes);
- // Increment count by <bytes>.
-
- virtual int handle_timeout (const ACE_Time_Value &, const void *arg);
- // Perform timer-based IO_Handler reconnection.
-
-protected:
- enum
- {
- MAX_RETRY_TIMEOUT = 300 // 5 minutes is the maximum timeout.
- };
-
- int initialize_connection (void);
- // Perform the first-time initiation of a connection to the peer.
-
- int reinitiate_connection (void);
- // Reinitiate a connection asynchronously when peers fail.
-
- void socket_queue_size (void);
- // Set the socket queue size.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::RWE_MASK);
- // Perform IO_Handler termination.
-
- Consumer_Map *consumer_map_;
- // Pointer to table that maps an event
- // to a Set of IO_Handler *'s for output.
-
- ACE_INET_Addr remote_addr_;
- // Address of peer.
-
- ACE_INET_Addr local_addr_;
- // Address of us.
-
- CONN_ID id_;
- // The assigned routing ID of this entry.
-
- size_t total_bytes_;
- // The total number of bytes sent/received on this channel.
-
- State state_;
- // The current state of the channel.
-
- IO_Handler_Connector *connector_;
- // Back pointer to IO_Handler_Connector to reestablish broken
- // connections.
-
- int timeout_;
- // Amount of time to wait between reconnection attempts.
-
- int max_timeout_;
- // Maximum amount of time to wait between reconnection attempts.
-
- char direction_;
- // Indicates which direction data flows through the channel ('O' ==
- // output and 'I' == input).
-
- int socket_queue_size_;
- // Size of the socket queue (0 means "use default").
-};
-
-class Supplier_Handler : public IO_Handler
- // = TITLE
- // Handle reception of Peer events arriving as events.
-{
-public:
- Supplier_Handler (Consumer_Map *,
- IO_Handler_Connector *,
- ACE_Thread_Manager * = 0,
- int socket_queue_size = 0);
- // Constructor sets the consumer map pointer.
-
- virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE);
- // Receive and process peer events.
-
-protected:
- virtual int recv (ACE_Message_Block *&);
- // Receive an event from a Supplier.
-
- int forward (ACE_Message_Block *event);
- // Forward the Event to a Consumer.
-
- ACE_Message_Block *msg_frag_;
- // Keep track of event fragment to handle non-blocking recv's from
- // Suppliers.
-};
-
-class Consumer_Handler : public IO_Handler
- // = TITLE
- // Handle transmission of events to other Peers using a
- // single-threaded approach.
-{
-public:
- Consumer_Handler (Consumer_Map *,
- IO_Handler_Connector *,
- ACE_Thread_Manager * = 0,
- int socket_queue_size = 0);
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
- // Send an event to a Consumer (may be queued if necessary).
-
-protected:
- // = We'll allow up to 16 megabytes to be queued per-output
- // channel.
- enum {QUEUE_SIZE = 1024 * 1024 * 16};
-
- virtual int handle_input (ACE_HANDLE);
- // Receive and process shutdowns from a Consumer.
-
- virtual int handle_output (ACE_HANDLE);
- // Finish sending event when flow control conditions abate.
-
- int nonblk_put (ACE_Message_Block *mb);
- // Perform a non-blocking put().
-
- virtual ssize_t send (ACE_Message_Block *);
- // Send an event to a Consumer.
-};
-
-#endif /* _IO_HANDLER */
diff --git a/apps/Gateway/Gateway/IO_Handler_Connector.cpp b/apps/Gateway/Gateway/IO_Handler_Connector.cpp
deleted file mode 100644
index 712b348951d..00000000000
--- a/apps/Gateway/Gateway/IO_Handler_Connector.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-#include "IO_Handler_Connector.h"
-// $Id$
-
-
-IO_Handler_Connector::IO_Handler_Connector (void)
-{
-}
-
-// Override the connection-failure method to add timer support.
-// Note that these timers perform "expoential backoff" to
-// avoid rapidly trying to reestablish connections when a link
-// goes down.
-
-int
-IO_Handler_Connector::handle_close (ACE_HANDLE sd, ACE_Reactor_Mask)
-{
- ACE_Connector<IO_Handler, ACE_SOCK_CONNECTOR>::AST *stp = 0;
-
- // Locate the ACE_Svc_Handler corresponding to the socket descriptor.
- if (this->handler_map_.find (sd, stp) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) can't locate channel %d in map, %p\n",
- sd, "find"), -1);
-
- IO_Handler *channel = stp->svc_handler ();
-
- // Schedule a reconnection request at some point in the future
- // (note that channel uses an exponential backoff scheme).
- if (ACE_Service_Config::reactor ()->schedule_timer (channel, 0,
- channel->timeout ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "schedule_timer"), -1);
- return 0;
-}
-
-// Initiate (or reinitiate) a connection to the IO_Handler.
-
-int
-IO_Handler_Connector::initiate_connection (IO_Handler *channel,
- ACE_Synch_Options &synch_options)
-{
- char buf[MAXHOSTNAMELEN];
-
- // Mark ourselves as idle so that the various iterators
- // will ignore us until we are reconnected.
- channel->state (IO_Handler::IDLE);
-
- if (channel->remote_addr ().addr_to_string (buf, sizeof buf) == -1
- || channel->local_addr ().addr_to_string (buf, sizeof buf) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "can't obtain peer's address"), -1);
-
- // Try to connect to the Peer.
-
- if (this->connect (channel, channel->remote_addr (),
- synch_options, channel->local_addr ()) == -1)
- {
- if (errno != EWOULDBLOCK)
- {
- channel->state (IO_Handler::FAILED);
- ACE_DEBUG ((LM_DEBUG, "(%t) %p on address %s\n",
- "connect", buf));
-
- // Reschedule ourselves to try and connect again.
- if (synch_options[ACE_Synch_Options::USE_REACTOR])
- {
- if (ACE_Service_Config::reactor ()->schedule_timer
- (channel, 0, channel->timeout ()) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "schedule_timer"), -1);
- }
- else
- // Failures on synchronous connects are reported as errors
- // so that the caller can decide how to proceed.
- return -1;
- }
- else
- {
- channel->state (IO_Handler::CONNECTING);
- ACE_DEBUG ((LM_DEBUG,
- "(%t) in the process of connecting %s to %s\n",
- synch_options[ACE_Synch_Options::USE_REACTOR]
- ? "asynchronously" : "synchronously", buf));
- }
- }
- else
- {
- channel->state (IO_Handler::ESTABLISHED);
- ACE_DEBUG ((LM_DEBUG, "(%t) connected to %s on %d\n",
- buf, channel->get_handle ()));
- }
- return 0;
-}
diff --git a/apps/Gateway/Gateway/IO_Handler_Connector.h b/apps/Gateway/Gateway/IO_Handler_Connector.h
deleted file mode 100644
index 585428c88ee..00000000000
--- a/apps/Gateway/Gateway/IO_Handler_Connector.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// IO_Handler_Connector.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_IO_HANDLER_CONNECTOR)
-#define _IO_HANDLER_CONNECTOR
-
-#include "ace/Connector.h"
-#include "Thr_IO_Handler.h"
-
-class IO_Handler_Connector : public ACE_Connector<IO_Handler, ACE_SOCK_CONNECTOR>
- // = TITLE
- // A concrete factory class that setups connections to peerds
- // and produces a new IO_Handler object to do the dirty work...
-{
-public:
- IO_Handler_Connector (void);
-
- // Initiate (or reinitiate) a connection on the IO_Handler.
- int initiate_connection (IO_Handler *,
- ACE_Synch_Options & = ACE_Synch_Options::synch);
-
-protected:
- // Override the connection-failure method to add timer support.
- virtual int handle_close (ACE_HANDLE sd, ACE_Reactor_Mask);
-};
-
-#endif /* _IO_HANDLER_CONNECTOR */
diff --git a/apps/Gateway/Gateway/Makefile b/apps/Gateway/Gateway/Makefile
deleted file mode 100644
index fe2a01095d2..00000000000
--- a/apps/Gateway/Gateway/Makefile
+++ /dev/null
@@ -1,814 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Gateway.
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = gatewayd
-LIB = libGateway.a
-SHLIB = libGateway.$(SOEXT)
-
-FILES = Concrete_Connection_Handlers \
- Config_Files \
- File_Parser \
- Gateway \
- Event_Channel \
- Event_Forwarding_Discriminator \
- Options \
- Connection_Handler \
- Connection_Handler_Acceptor \
- Connection_Handler_Connector
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LDLIBS = -lGateway
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-BUILD = $(VLIB) $(VSHLIB) $(SHLIBA) $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/Concrete_Connection_Handlers.o .obj/Concrete_Connection_Handlers.so .shobj/Concrete_Connection_Handlers.o .shobj/Concrete_Connection_Handlers.so: Concrete_Connection_Handlers.cpp \
- Event_Channel.h Connection_Handler_Connector.h \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Connection_Handler.h Config_Files.h File_Parser.h Event.h Options.h \
- Connection_Handler_Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.i \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- Consumer_Dispatch_Set.h Event_Forwarding_Discriminator.h \
- Concrete_Connection_Handlers.h
-.obj/Config_Files.o .obj/Config_Files.so .shobj/Config_Files.o .shobj/Config_Files.so: Config_Files.cpp Config_Files.h File_Parser.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Event.h Options.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i
-.obj/File_Parser.o .obj/File_Parser.so .shobj/File_Parser.o .shobj/File_Parser.so: File_Parser.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- File_Parser.h
-.obj/Gateway.o .obj/Gateway.so .shobj/Gateway.o .shobj/Gateway.so: Gateway.cpp Config_Files.h File_Parser.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Event.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- Event_Channel.h Connection_Handler_Connector.h \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Connection_Handler.h Options.h Connection_Handler_Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.i \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- Consumer_Dispatch_Set.h Event_Forwarding_Discriminator.h Gateway.h
-.obj/Event_Channel.o .obj/Event_Channel.so .shobj/Event_Channel.o .shobj/Event_Channel.so: Event_Channel.cpp Connection_Handler_Connector.h \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Connection_Handler.h Config_Files.h File_Parser.h Event.h Options.h \
- Event_Channel.h Connection_Handler_Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.i \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- Consumer_Dispatch_Set.h Event_Forwarding_Discriminator.h
-.obj/Event_Forwarding_Discriminator.o .obj/Event_Forwarding_Discriminator.so .shobj/Event_Forwarding_Discriminator.o .shobj/Event_Forwarding_Discriminator.so: Event_Forwarding_Discriminator.cpp \
- Event_Forwarding_Discriminator.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i Event.h \
- Consumer_Dispatch_Set.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i
-.obj/Options.o .obj/Options.so .shobj/Options.o .shobj/Options.so: Options.cpp \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Get_Opt.i Event.h \
- Options.h $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i
-.obj/Connection_Handler.o .obj/Connection_Handler.so .shobj/Connection_Handler.o .shobj/Connection_Handler.so: Connection_Handler.cpp Event_Channel.h \
- Connection_Handler_Connector.h \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Connection_Handler.h Config_Files.h File_Parser.h Event.h Options.h \
- Connection_Handler_Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.i \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- Consumer_Dispatch_Set.h Event_Forwarding_Discriminator.h \
- Concrete_Connection_Handlers.h
-.obj/Connection_Handler_Acceptor.o .obj/Connection_Handler_Acceptor.so .shobj/Connection_Handler_Acceptor.o .shobj/Connection_Handler_Acceptor.so: Connection_Handler_Acceptor.cpp \
- Event_Channel.h Connection_Handler_Connector.h \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Connection_Handler.h Config_Files.h File_Parser.h Event.h Options.h \
- Connection_Handler_Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.i \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- Consumer_Dispatch_Set.h Event_Forwarding_Discriminator.h
-.obj/Connection_Handler_Connector.o .obj/Connection_Handler_Connector.so .shobj/Connection_Handler_Connector.o .shobj/Connection_Handler_Connector.so: Connection_Handler_Connector.cpp \
- Connection_Handler_Connector.h \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Connection_Handler.h Config_Files.h File_Parser.h Event.h Options.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/Gateway/Gateway/Options.cpp b/apps/Gateway/Gateway/Options.cpp
deleted file mode 100644
index 0d93e4cd7fa..00000000000
--- a/apps/Gateway/Gateway/Options.cpp
+++ /dev/null
@@ -1,258 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/Get_Opt.h"
-#include "Event.h"
-#include "Options.h"
-
-// Static initialization.
-Options *Options::instance_ = 0;
-
-Options *
-Options::instance (void)
-{
- if (Options::instance_ == 0)
- ACE_NEW_RETURN (Options::instance_, Options, 0);
-
- return Options::instance_;
-}
-
-Options::Options (void)
- : locking_strategy_ (0),
- performance_window_ (0),
- blocking_semantics_ (ACE_NONBLOCK),
- socket_queue_size_ (0),
- threading_strategy_ (REACTIVE),
- options_ (0),
- supplier_acceptor_port_ (DEFAULT_GATEWAY_SUPPLIER_PORT),
- consumer_acceptor_port_ (DEFAULT_GATEWAY_CONSUMER_PORT),
- supplier_connector_port_ (DEFAULT_PEER_SUPPLIER_PORT),
- consumer_connector_port_ (DEFAULT_PEER_CONSUMER_PORT),
- max_timeout_ (MAX_TIMEOUT),
- max_queue_size_ (MAX_QUEUE_SIZE),
- connection_id_ (1)
-{
- ACE_OS::strcpy (this->connection_config_file_, "connection_config");
- ACE_OS::strcpy (this->consumer_config_file_, "consumer_config");
-}
-
-int
-Options::enabled (int option) const
-{
- return ACE_BIT_ENABLED (this->options_, option);
-}
-
-Options::~Options (void)
-{
- delete this->locking_strategy_;
-}
-
-ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *
-Options::locking_strategy (void) const
-{
- return this->locking_strategy_;
-}
-
-void
-Options::locking_strategy (ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *ls)
-{
- this->locking_strategy_ = ls;
-}
-
-int
-Options::performance_window (void) const
-{
- return this->performance_window_;
-}
-
-CONNECTION_ID &
-Options::connection_id (void)
-{
- return this->connection_id_;
-}
-
-long
-Options::max_timeout (void) const
-{
- return this->max_timeout_;
-}
-
-int
-Options::blocking_semantics (void) const
-{
- return this->blocking_semantics_;
-}
-
-int
-Options::socket_queue_size (void) const
-{
- return this->socket_queue_size_;
-}
-
-u_long
-Options::threading_strategy (void) const
-{
- return this->threading_strategy_;
-}
-
-const char *
-Options::connection_config_file (void) const
-{
- return this->connection_config_file_;
-}
-
-const char *
-Options::consumer_config_file (void) const
-{
- return this->consumer_config_file_;
-}
-
-u_short
-Options::consumer_acceptor_port (void) const
-{
- return this->consumer_acceptor_port_;
-}
-
-u_short
-Options::supplier_acceptor_port (void) const
-{
- return this->supplier_acceptor_port_;
-}
-
-u_short
-Options::consumer_connector_port (void) const
-{
- return this->consumer_connector_port_;
-}
-
-long
-Options::max_queue_size (void) const
-{
- return this->max_queue_size_;
-}
-
-u_short
-Options::supplier_connector_port (void) const
-{
- return this->supplier_connector_port_;
-}
-
-// Parse the "command-line" arguments and set the corresponding flags.
-
-int
-Options::parse_args (int argc, char *argv[])
-{
- // Assign defaults.
- ACE_Get_Opt get_opt (argc,
- argv,
- "a:bC:c:dm:P:p:q:r:t:vw:",
- 0);
-
- for (int c; (c = get_opt ()) != EOF; )
- {
- switch (c)
- {
- case 'a':
- {
- // Become an Acceptor.
-
- for (char *flag = ACE_OS::strtok (get_opt.optarg, "|");
- flag != 0;
- flag = ACE_OS::strtok (0, "|"))
- if (ACE_OS::strncasecmp (flag, "C", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::CONSUMER_ACCEPTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Consumer Acceptor port number.
- this->consumer_acceptor_port_ = ACE_OS::atoi (flag + 2);
- }
- else if (ACE_OS::strncasecmp (flag, "S", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::SUPPLIER_ACCEPTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Supplier Acceptor port number.
- this->supplier_acceptor_port_ = ACE_OS::atoi (flag + 2);
- }
- }
- break;
- /* NOTREACHED */
- case 'b': // Use blocking connection establishment.
- this->blocking_semantics_ = 1;
- break;
- case 'C': // Use a different proxy config filename.
- ACE_OS::strncpy (this->consumer_config_file_,
- get_opt.optarg,
- sizeof this->consumer_config_file_);
- break;
- case 'c':
- {
- // Become a Connector.
-
- for (char *flag = ACE_OS::strtok (get_opt.optarg, "|");
- flag != 0;
- flag = ACE_OS::strtok (0, "|"))
- if (ACE_OS::strncasecmp (flag, "C", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::CONSUMER_CONNECTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Consumer Connector port number.
- this->consumer_connector_port_ = ACE_OS::atoi (flag + 2);
- }
- else if (ACE_OS::strncasecmp (flag, "S", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::SUPPLIER_CONNECTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Supplier Connector port number.
- this->supplier_connector_port_ = ACE_OS::atoi (flag + 2);
- }
- }
- break;
- /* NOTREACHED */
- case 'd': // We are debugging.
- ACE_SET_BITS (this->options_,
- Options::DEBUG);
- break;
- case 'P': // Use a different consumer config filename.
- ACE_OS::strncpy (this->connection_config_file_,
- get_opt.optarg,
- sizeof this->connection_config_file_);
- break;
- case 'q': // Use a different socket queue size.
- this->socket_queue_size_ = ACE_OS::atoi (get_opt.optarg);
- break;
- case 't': // Use a different threading strategy.
- {
- for (char *flag = ACE_OS::strtok (get_opt.optarg, "|");
- flag != 0;
- flag = ACE_OS::strtok (0, "|"))
- if (ACE_OS::strcmp (flag, "OUTPUT_MT") == 0)
- ACE_SET_BITS (this->threading_strategy_,
- Options::OUTPUT_MT);
- else if (ACE_OS::strcmp (flag, "INPUT_MT") == 0)
- ACE_SET_BITS (this->threading_strategy_,
- Options::INPUT_MT);
- break;
- }
- case 'v': // Verbose mode.
- ACE_SET_BITS (this->options_,
- Options::VERBOSE);
- break;
- case 'w': // Time performance for a designated amount of time.
- this->performance_window_ = ACE_OS::atoi (get_opt.optarg);
- // Use blocking connection semantics so that we get accurate
- // timings (since all connections start at once).
- this->blocking_semantics_ = 0;
- break;
- default:
- break;
- }
- }
-
- return 0;
-}
diff --git a/apps/Gateway/Gateway/Options.h b/apps/Gateway/Gateway/Options.h
deleted file mode 100644
index da61b8202c3..00000000000
--- a/apps/Gateway/Gateway/Options.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Options.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#if !defined (OPTIONS_H)
-#define OPTIONS_H
-
-#include "ace/Synch.h"
-
-class ACE_Svc_Export Options
-{
- // = TITLE
- // Singleton that consolidates all Options for a gatewayd.
-public:
- // = Options that can be enabled/disabled.
- enum
- {
- // = The types of threading strategies.
- REACTIVE = 0,
- OUTPUT_MT = 1,
- INPUT_MT = 2,
-
- VERBOSE = 01,
- DEBUG = 02,
-
- SUPPLIER_ACCEPTOR = 04,
- CONSUMER_ACCEPTOR = 010,
- SUPPLIER_CONNECTOR = 020,
- CONSUMER_CONNECTOR = 040
- };
-
- static Options *instance (void);
- // Return Singleton.
-
- ~Options (void);
- // Termination.
-
- int parse_args (int argc, char *argv[]);
- // Parse the arguments and set the options.
-
- // = Accessor methods.
- int enabled (int option) const;
- // Determine if an option is enabled.
-
- ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *locking_strategy (void) const;
- // Gets the locking strategy used for serializing access to the
- // reference count in <ACE_Message_Block>. If it's 0, then there's
- // no locking strategy and we're using a REACTIVE concurrency
- // strategy.
-
- void locking_strategy (ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *);
- // Set the locking strategy used for serializing access to the
- // reference count in <ACE_Message_Block>.
-
- int performance_window (void) const;
- // Number of seconds after connection establishment to report
- // throughput.
-
- int blocking_semantics (void) const;
- // 0 == blocking connects, ACE_NONBLOCK == non-blocking connects.
-
- int socket_queue_size (void) const;
- // Size of the socket queue (0 means "use default").
-
- u_long threading_strategy (void) const;
- // i.e., REACTIVE, OUTPUT_MT, and/or INPUT_MT.
-
- u_short supplier_acceptor_port (void) const;
- // Our acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Supplier.
-
- u_short consumer_acceptor_port (void) const;
- // Our acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Consumer.
-
- u_short supplier_connector_port (void) const;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Supplier.
-
- u_short consumer_connector_port (void) const;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Consumer.
-
- const char *connector_host (void) const;
- // Our connector port host, i.e., the host running the gatewayd
- // process.
-
- const char *connection_config_file (void) const;
- // Name of the connection configuration file.
-
- const char *consumer_config_file (void) const;
- // Name of the consumer map configuration file.
-
- long max_timeout (void) const;
- // The maximum retry timeout delay.
-
- long max_queue_size (void) const;
- // The maximum size of the queue.
-
- CONNECTION_ID &connection_id (void);
- // Returns a reference to the next available connection id;
-
-private:
- enum
- {
- MAX_QUEUE_SIZE = 1024 * 1024 * 16,
- // We'll allow up to 16 megabytes to be queued per-output proxy.
-
- MAX_TIMEOUT = 32
- // The maximum timeout for trying to re-establish connections.
- };
-
- Options (void);
- // Initialization.
-
- static Options *instance_;
- // Options Singleton instance.
-
- ACE_Lock_Adapter<ACE_SYNCH_MUTEX> *locking_strategy_;
- // Points to the locking strategy used for serializing access to the
- // reference count in <ACE_Message_Block>. If it's 0, then there's
- // no locking strategy and we're using a REACTIVE concurrency
- // strategy.
-
- int performance_window_;
- // Number of seconds after connection establishment to report
- // throughput.
-
- int blocking_semantics_;
- // 0 == blocking connects, ACE_NONBLOCK == non-blocking connects.
-
- int socket_queue_size_;
- // Size of the socket queue (0 means "use default").
-
- u_long threading_strategy_;
- // i.e., REACTIVE, OUTPUT_MT, and/or INPUT_MT.
-
- u_long options_;
- // Flag to indicate if we want verbose diagnostics.
-
- u_short supplier_acceptor_port_;
- // The acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Supplier.
-
- u_short consumer_acceptor_port_;
- // The acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Consumer.
-
- u_short supplier_connector_port_;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Supplier.
-
- u_short consumer_connector_port_;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Consumer.
-
- long max_timeout_;
- // The maximum retry timeout delay.
-
- long max_queue_size_;
- // The maximum size of the queue.
-
- CONNECTION_ID connection_id_;
- // The next available connection id.
-
- char connection_config_file_[MAXPATHLEN + 1];
- // Name of the connection configuration file.
-
- char consumer_config_file_[MAXPATHLEN + 1];
- // Name of the consumer map configuration file.
-};
-
-#endif /* OPTIONS_H */
diff --git a/apps/Gateway/Gateway/Peer_Message.h b/apps/Gateway/Gateway/Peer_Message.h
deleted file mode 100644
index d9e65650095..00000000000
--- a/apps/Gateway/Gateway/Peer_Message.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Peer_Message.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (PEER_MESSAGE)
-#define PEER_MESSAGE
-
-// This is the unique connection identifier that denotes a particular
-// Channel in the Gateway.
-typedef short CONN_ID;
-
-class Peer_Addr
- // = TITLE
- // Peer address is used to identify the source/destination of a
- // routing message.
-{
-public:
- Peer_Addr (CONN_ID cid = -1, u_char lid = 0, u_char pay = 0)
- : conn_id_ (cid), logical_id_ (lid), payload_ (pay) {}
-
- int operator== (const Peer_Addr &pa) const
- {
- return this->conn_id_ == pa.conn_id_
- && this->logical_id_ == pa.logical_id_
- && this->payload_ == pa.payload_;
- }
-
- CONN_ID conn_id_;
- // Unique connection identifier that denotes a particular Channel.
-
- u_char logical_id_;
- // Logical ID.
-
- u_char payload_;
- // Payload type.
-};
-
-
-class Peer_Header
- // = TITLE
- // Fixed sized header.
-{
-public:
- typedef u_short ROUTING_ID;
- // Type used to route messages from gatewayd.
-
- enum
- {
- INVALID_ID = -1 // No peer can validly use this number.
- };
-
- ROUTING_ID routing_id_;
- // Source ID.
-
- size_t len_;
- // Length of the message in bytes.
-};
-
-class Peer_Message
- // = TITLE
- // Variable-sized message (buf_ may be variable-sized between
- // 0 and MAX_PAYLOAD_SIZE).
-{
-public:
- enum { MAX_PAYLOAD_SIZE = 1024 };
- // The maximum size of an Peer message (see Peer protocol specs for
- // exact #).
-
- Peer_Header header_;
- // Message header.
-
- char buf_[MAX_PAYLOAD_SIZE];
- // Message payload.
-};
-
-#endif /* PEER_MESSAGE */
diff --git a/apps/Gateway/Gateway/Routing_Entry.cpp b/apps/Gateway/Gateway/Routing_Entry.cpp
deleted file mode 100644
index cc270cfac3a..00000000000
--- a/apps/Gateway/Gateway/Routing_Entry.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// Defines an entry in the Routing Table.
-// $Id$
-
-#include "Routing_Entry.h"
-
-Routing_Entry::Routing_Entry (int validity_interval)
- : validity_interval_ (validity_interval)
-{
- ACE_NEW (this->destinations_, Routing_Entry::ENTRY_SET);
-}
-
-Routing_Entry::~Routing_Entry (void)
-{
- delete this->destinations_;
-}
-
-// Get the associated set of destinations.
-
-Routing_Entry::ENTRY_SET *
-Routing_Entry::destinations (void)
-{
- return this->destinations_;
-}
-
-// Set the associated set of destinations.
-
-void
-Routing_Entry::destinations (Routing_Entry::ENTRY_SET *s)
-{
- this->destinations_ = s;
-}
-
-// Get the current validity interval for this route.
-
-int
-Routing_Entry::validity_interval (void)
-{
- return this->validity_interval_;
-}
-
-// Set the current validity interval for this route.
-
-void
-Routing_Entry::validity_interval (int vi)
-{
- this->validity_interval_ = vi;
-}
diff --git a/apps/Gateway/Gateway/Routing_Entry.h b/apps/Gateway/Gateway/Routing_Entry.h
deleted file mode 100644
index ab8e0eee53d..00000000000
--- a/apps/Gateway/Gateway/Routing_Entry.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Routing_Entry.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_ROUTING_ENTRY)
-#define _ROUTING_ENTRY
-
-#include "ace/Set.h"
-
-// Forward reference.
-class Channel;
-
-class Routing_Entry
-{
- // = TITLE
- // Defines an entry in the Routing_Table.
-public:
- Routing_Entry (int validity_interval = 0);
- ~Routing_Entry (void);
-
- typedef ACE_Unbounded_Set<Channel *> ENTRY_SET;
- typedef ACE_Unbounded_Set_Iterator<Channel *> ENTRY_ITERATOR;
-
- // = Set/get the associated set of destinations.
- ENTRY_SET *destinations (void);
- void destinations (ENTRY_SET *);
-
- // = Set/get current validity interval for this routing entry.
- int validity_interval (void);
- void validity_interval (int);
-
-protected:
- ENTRY_SET *destinations_;
- // The set of destinations;
-
- int validity_interval_;
- // The current validity interval of this link.
-};
-
-#endif /* _ROUTING_ENTRY */
diff --git a/apps/Gateway/Gateway/Routing_Table.cpp b/apps/Gateway/Gateway/Routing_Table.cpp
deleted file mode 100644
index 3ef2f21bc1f..00000000000
--- a/apps/Gateway/Gateway/Routing_Table.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-#if !defined (_ROUTING_TABLE_C)
-#define _ROUTING_TABLE_C
-
-
-#include "Routing_Table.h"
-
-/* Bind the EXT_ID to the INT_ID. */
-
-template <class EXT_ID, class INT_ID, class LOCK> int
-Routing_Table<EXT_ID, INT_ID, LOCK>::bind (EXT_ID ext_id, INT_ID *int_id)
-{
- return this->map_.bind (ext_id, int_id);
-}
-
-/* Find the INT_ID corresponding to the EXT_ID. */
-
-template <class EXT_ID, class INT_ID, class LOCK> int
-Routing_Table<EXT_ID, INT_ID, LOCK>::find (EXT_ID ext_id, INT_ID *&int_id)
-{
- return this->map_.find (ext_id, int_id);
-}
-
-/* Unbind (remove) the EXT_ID from the map. */
-
-template <class EXT_ID, class INT_ID, class LOCK> int
-Routing_Table<EXT_ID, INT_ID, LOCK>::unbind (EXT_ID ext_id)
-{
- return this->map_.unbind (ext_id);
-}
-
-template <class EXT_ID, class INT_ID, class LOCK>
-Routing_Iterator<EXT_ID, INT_ID, LOCK>::Routing_Iterator (Routing_Table<EXT_ID,
- INT_ID, LOCK> &rt,
- int ignore_inactive)
- : map_iter_ (rt.map_),
- ignore_inactive_ (ignore_inactive)
-{
-}
-
-template <class EXT_ID, class INT_ID, class LOCK> int
-Routing_Iterator<EXT_ID, INT_ID, LOCK>::next (INT_ID *&ss)
-{
- // Loop in order to skip over inactive entries if necessary.
-
- for (ACE_Map_Entry<EXT_ID, INT_ID *> *temp = 0;
- this->map_iter_.next (temp) != 0;
- this->advance ())
- {
- // Skip over inactive entries if necessary.
- if (temp->int_id_->active () == 0 && this->ignore_inactive_)
- continue;
-
- // Otherwise, return the next item.
- ss = temp->int_id_;
- return 1;
- }
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class LOCK> int
-Routing_Iterator<EXT_ID, INT_ID, LOCK>::advance (void)
-{
- return this->map_iter_.advance ();
-}
-#endif /* _ROUTING_TABLE_C */
diff --git a/apps/Gateway/Gateway/Routing_Table.h b/apps/Gateway/Gateway/Routing_Table.h
deleted file mode 100644
index 84194f13e49..00000000000
--- a/apps/Gateway/Gateway/Routing_Table.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Routing_Table.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_ROUTING_TABLE_H)
-#define _ROUTING_TABLE_H
-
-#include "ace/Map_Manager.h"
-
-template <class EXT_ID, class INT_ID, class LOCK>
-class Routing_Table
-{
- // = TITLE
- // Define a generic routing table based on the ACE Map_Manager.
- //
- // = DESCRIPTION
- // We need to have this table, rather than just using the Map_Manager
- // directly in order to ignore "inactive" routing entries...
-public:
- int bind (EXT_ID ext_id, INT_ID *int_id);
- // Associate EXT_ID with the INT_ID.
-
- int find (EXT_ID ext_id, INT_ID *&int_id);
- // Break any association of EXID.
-
- int unbind (EXT_ID ext_id);
- // Locate EXID and pass out parameter via INID. If found,
- // return 0, else -1.
-
-public:
- ACE_Map_Manager<EXT_ID, INT_ID *, LOCK> map_;
- // Map external IDs to internal IDs.
-};
-
-template <class EXT_ID, class INT_ID, class LOCK>
-class Routing_Iterator
-{
- // = TITLE
- // Define an iterator for the Routing Table.
-public:
- Routing_Iterator (Routing_Table<EXT_ID, INT_ID, LOCK> &mm,
- int ignore_inactive = 1);
- int next (INT_ID *&);
- int advance (void);
-
-private:
- ACE_Map_Iterator<EXT_ID, INT_ID *, LOCK> map_iter_;
- int ignore_inactive_;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "Routing_Table.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-#endif /* _ROUTING_TABLE_H */
diff --git a/apps/Gateway/Gateway/Thr_Channel.cpp b/apps/Gateway/Gateway/Thr_Channel.cpp
deleted file mode 100644
index 26e385e2727..00000000000
--- a/apps/Gateway/Gateway/Thr_Channel.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-#include "Thr_Channel.h"
-// $Id$
-
-#include "Channel_Connector.h"
-
-#if defined (ACE_HAS_THREADS)
-Thr_Output_Channel::Thr_Output_Channel (ROUTING_TABLE *rt,
- Channel_Connector *cc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : Output_Channel (rt, cc, thr_mgr, socket_queue_size)
-{
-}
-
-// This method should be called only when the peer shuts down
-// unexpectedly. This method marks the Channel as having failed and
-// deactivates the ACE_Message_Queue (to wake up the thread blocked on
-// <dequeue_head> in svc()). Thr_Output_Handler::handle_close () will
-// eventually try to reconnect...
-
-int
-Thr_Output_Channel::handle_input (ACE_HANDLE h)
-{
- this->Output_Channel::handle_input (h);
- ACE_Service_Config::reactor ()->remove_handler (h,
- ACE_Event_Handler::RWE_MASK
- | ACE_Event_Handler::DONT_CALL);
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
- return 0;
-}
-
-// Initialize the threaded Output_Channel object and spawn a new
-// thread.
-
-int
-Thr_Output_Channel::open (void *)
-{
- // Set the size of the socket queue.
- this->socket_queue_size ();
-
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Register ourselves to receive input events (which indicate that
- // the Peer has shut down unexpectedly).
- if (ACE_Service_Config::reactor ()->register_handler (this,
- ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1);
-
- if (this->initialize_connection ())
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "initialize_connection"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // messages to peers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// ACE_Queue up a message for transmission (must not block since all
-// Input_Channels are single-threaded).
-
-int
-Thr_Output_Channel::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- // Perform non-blocking enqueue.
- return this->msg_queue ()->enqueue_tail (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Transmit messages to the peer (note simplification resulting from
-// threads...)
-
-int
-Thr_Output_Channel::svc (void)
-{
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) connected! Thr_Output_Channel's fd = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread it is OK to block on
- // output.
-
- for (ACE_Message_Block *mb = 0;
- this->msg_queue ()->dequeue_head (mb) != -1; )
- if (this->send_peer (mb) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "send failed"));
-
- ACE_ASSERT (errno == ESHUTDOWN);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) shutting down threaded Output_Channel %d on handle %d\n",
- this->id (), this->get_handle ()));
-
- this->peer ().close ();
-
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->connector_->initiate_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n",
- tv.sec ()));
- ACE_OS::sleep (tv);
- }
- }
-
- return 0;
-}
-
-Thr_Input_Channel::Thr_Input_Channel (ROUTING_TABLE *rt,
- Channel_Connector *cc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : Input_Channel (rt, cc, thr_mgr, socket_queue_size)
-{
-}
-
-int
-Thr_Input_Channel::open (void *)
-{
- // Set the size of the socket queue.
- this->socket_queue_size ();
-
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- if (this->initialize_connection ())
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "initialize_connection"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // messages to peers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// Receive messages from a Peer in a separate thread (note reuse of
-// existing code!).
-
-int
-Thr_Input_Channel::svc (void)
-{
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) connected! Thr_Input_Channel's fd = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread and processes
- // messages for one connection it is OK to block on input and
- // output.
-
- while (this->handle_input () != -1)
- continue;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down threaded Input_Channel %d on handle %d\n",
- this->id (),
- this->get_handle ()));
-
- this->peer ().close ();
-
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
-
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->connector_->initiate_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n", tv.sec ()));
- ACE_OS::sleep (tv);
- }
- }
- return 0;
-}
-
-#endif /* ACE_HAS_THREADS */
diff --git a/apps/Gateway/Gateway/Thr_Channel.h b/apps/Gateway/Gateway/Thr_Channel.h
deleted file mode 100644
index a1dc91b1619..00000000000
--- a/apps/Gateway/Gateway/Thr_Channel.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Thr_Channel.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_THR_CHANNEL)
-#define _THR_CHANNEL
-
-#include "Channel.h"
-
-#if defined (ACE_HAS_THREADS)
-class Thr_Output_Channel : public Output_Channel
- // = TITLE
- // Runs each Output Channel in a separate thread.
-{
-public:
- Thr_Output_Channel (ROUTING_TABLE *,
- Channel_Connector *,
- ACE_Thread_Manager *,
- int socket_queue_size);
-
- virtual int open (void *);
- // Initialize the threaded Output_Channel object and spawn a new
- // thread.
-
- virtual int handle_input (ACE_HANDLE);
- // Called when Peer shutdown unexpectedly.
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
- // Send a message to a peer.
-
- virtual int svc (void);
- // Transmit peer messages.
-};
-
-class Thr_Input_Channel : public Input_Channel
- // = TITLE
- // Runs each Input Channel in a separate thread.
-{
-public:
- Thr_Input_Channel (ROUTING_TABLE *,
- Channel_Connector *,
- ACE_Thread_Manager *,
- int socket_queue_size);
-
- virtual int open (void *);
- // Initialize the object and spawn a new thread.
-
- virtual int svc (void);
- // Transmit peer messages.
-};
-#endif /* ACE_HAS_THREADS */
-#endif /* _THR_CHANNEL */
diff --git a/apps/Gateway/Gateway/Thr_IO_Handler.cpp b/apps/Gateway/Gateway/Thr_IO_Handler.cpp
deleted file mode 100644
index 109cfad9c3f..00000000000
--- a/apps/Gateway/Gateway/Thr_IO_Handler.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-#include "Thr_IO_Handler.h"
-// $Id$
-
-#include "IO_Handler_Connector.h"
-
-#if defined (ACE_HAS_THREADS)
-Thr_Consumer_Handler::Thr_Consumer_Handler (Consumer_Map *consumer_map,
- IO_Handler_Connector *ioc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : Consumer_Handler (consumer_map, ioc, thr_mgr, socket_queue_size)
-{
-}
-
-// This method should be called only when the peer shuts down
-// unexpectedly. This method marks the IO_Handler as having failed and
-// deactivates the ACE_Message_Queue (to wake up the thread blocked on
-// <dequeue_head> in svc()). Thr_Output_Handler::handle_close () will
-// eventually try to reconnect...
-
-int
-Thr_Consumer_Handler::handle_input (ACE_HANDLE h)
-{
- this->Consumer_Handler::handle_input (h);
- ACE_Service_Config::reactor ()->remove_handler (h,
- ACE_Event_Handler::RWE_MASK
- | ACE_Event_Handler::DONT_CALL);
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
- return 0;
-}
-
-// Initialize the threaded Consumer_Handler object and spawn a new
-// thread.
-
-int
-Thr_Consumer_Handler::open (void *)
-{
- // Set the size of the socket queue.
- this->socket_queue_size ();
-
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Register ourselves to receive input events (which indicate that
- // the Peer has shut down unexpectedly).
- if (ACE_Service_Config::reactor ()->register_handler (this,
- ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1);
-
- if (this->initialize_connection ())
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "initialize_connection"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH_STRATEGY>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // messages to peers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// ACE_Queue up a message for transmission (must not block since all
-// Supplier_Handlers are single-threaded).
-
-int
-Thr_Consumer_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- // Perform non-blocking enqueue.
- return this->msg_queue ()->enqueue_tail (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Transmit messages to the peer (note simplification resulting from
-// threads...)
-
-int
-Thr_Consumer_Handler::svc (void)
-{
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) connected! Thr_Consumer_Handler's fd = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread it is OK to block on
- // output.
-
- for (ACE_Message_Block *mb = 0;
- this->msg_queue ()->dequeue_head (mb) != -1; )
- if (this->send (mb) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "send failed"));
-
- ACE_ASSERT (errno == ESHUTDOWN);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) shutting down threaded Consumer_Handler %d on handle %d\n",
- this->id (), this->get_handle ()));
-
- this->peer ().close ();
-
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->connector_->initiate_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n",
- tv.sec ()));
- ACE_OS::sleep (tv);
- }
- }
-
- return 0;
-}
-
-Thr_Supplier_Handler::Thr_Supplier_Handler (Consumer_Map *consumer_map,
- IO_Handler_Connector *ioc,
- ACE_Thread_Manager *thr_mgr,
- int socket_queue_size)
- : Supplier_Handler (consumer_map, ioc, thr_mgr, socket_queue_size)
-{
-}
-
-int
-Thr_Supplier_Handler::open (void *)
-{
- // Set the size of the socket queue.
- this->socket_queue_size ();
-
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- if (this->initialize_connection ())
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "initialize_connection"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH_STRATEGY>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // messages to peers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// Receive messages from a Peer in a separate thread (note reuse of
-// existing code!).
-
-int
-Thr_Supplier_Handler::svc (void)
-{
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) connected! Thr_Supplier_Handler's fd = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread and processes
- // messages for one connection it is OK to block on input and
- // output.
-
- while (this->handle_input () != -1)
- continue;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down threaded Supplier_Handler %d on handle %d\n",
- this->id (),
- this->get_handle ()));
-
- this->peer ().close ();
-
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
-
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->connector_->initiate_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n", tv.sec ()));
- ACE_OS::sleep (tv);
- }
- }
- return 0;
-}
-
-#endif /* ACE_HAS_THREADS */
diff --git a/apps/Gateway/Gateway/Thr_IO_Handler.h b/apps/Gateway/Gateway/Thr_IO_Handler.h
deleted file mode 100644
index ee056b35361..00000000000
--- a/apps/Gateway/Gateway/Thr_IO_Handler.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Thr_IO_Handler.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_THR_IO_HANDLER)
-#define _THR_IO_HANDLER
-
-#include "IO_Handler.h"
-
-#if defined (ACE_HAS_THREADS)
-class Thr_Consumer_Handler : public Consumer_Handler
- // = TITLE
- // Runs each Output IO_Handler in a separate thread.
-{
-public:
- Thr_Consumer_Handler (Consumer_Map *,
- IO_Handler_Connector *,
- ACE_Thread_Manager *,
- int socket_queue_size);
-
- virtual int open (void *);
- // Initialize the threaded Consumer_Handler object and spawn a new
- // thread.
-
- virtual int handle_input (ACE_HANDLE);
- // Called when Peer shutdown unexpectedly.
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
- // Send a message to a peer.
-
- virtual int svc (void);
- // Transmit peer messages.
-};
-
-class Thr_Supplier_Handler : public Supplier_Handler
- // = TITLE
- // Runs each Input IO_Handler in a separate thread.
-{
-public:
- Thr_Supplier_Handler (Consumer_Map *,
- IO_Handler_Connector *,
- ACE_Thread_Manager *,
- int socket_queue_size);
-
- virtual int open (void *);
- // Initialize the object and spawn a new thread.
-
- virtual int svc (void);
- // Transmit peer messages.
-};
-#endif /* ACE_HAS_THREADS */
-#endif /* _THR_IO_HANDLER */
diff --git a/apps/Gateway/Gateway/Thr_Proxy_Handler.cpp b/apps/Gateway/Gateway/Thr_Proxy_Handler.cpp
deleted file mode 100644
index f316e4e82bf..00000000000
--- a/apps/Gateway/Gateway/Thr_Proxy_Handler.cpp
+++ /dev/null
@@ -1,211 +0,0 @@
-// $Id$
-
-#include "Event_Channel.h"
-#include "Thr_Proxy_Handler.h"
-
-#if defined (ACE_HAS_THREADS)
-Thr_Consumer_Proxy::Thr_Consumer_Proxy (ACE_Event_Channel &ec,
- const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- ACE_INT32 conn_id)
- : Consumer_Proxy (ec, remote_addr, local_addr, conn_id)
-{
-}
-
-// This method should be called only when the Consumer shuts down
-// unexpectedly. This method marks the Proxy_Handler as having failed
-// and deactivates the ACE_Message_Queue (to wake up the thread
-// blocked on <dequeue_head> in svc()).
-// Thr_Output_Handler::handle_close () will eventually try to
-// reconnect...
-
-int
-Thr_Consumer_Proxy::handle_input (ACE_HANDLE h)
-{
- // Call down to the <Consumer_Proxy> to handle this first.
- this->Consumer_Proxy::handle_input (h);
-
- ACE_Service_Config::reactor ()->remove_handler
- (h, ACE_Event_Handler::ALL_EVENTS_MASK | ACE_Event_Handler::DONT_CALL);
-
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
- return 0;
-}
-
-// Initialize the threaded Consumer_Proxy object and spawn a new
-// thread.
-
-int
-Thr_Consumer_Proxy::open (void *)
-{
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Call back to the <Event_Channel> to complete our initialization.
- else if (this->event_channel_.complete_proxy_connection (this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "complete_proxy_connection"), -1);
-
- // Register ourselves to receive input events (which indicate that
- // the Consumer has shut down unexpectedly).
- else if (ACE_Service_Config::reactor ()->register_handler
- (this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- else if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH_STRATEGY>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // events to Consumers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// Queue up an event for transmission (must not block since
-// Supplier_Proxys may be single-threaded).
-
-int
-Thr_Consumer_Proxy::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- // Perform non-blocking enqueue.
- return this->msg_queue ()->enqueue_tail
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Transmit events to the peer (note simplification resulting from
-// threads...)
-
-int
-Thr_Consumer_Proxy::svc (void)
-{
-
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) connected! Thr_Consumer_Proxy's handle = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread it is OK to block on
- // output.
-
- for (ACE_Message_Block *mb = 0;
- this->msg_queue ()->dequeue_head (mb) != -1;
- )
- {
- if (this->send (mb) == -1)
- ACE_ERROR ((LM_ERROR, "(%t) %p\n", "send failed"));
- }
-
- ACE_ASSERT (errno == ESHUTDOWN);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down threaded Consumer_Proxy %d on handle %d\n",
- this->id (), this->get_handle ()));
-
- this->peer ().close ();
-
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->event_channel_.initiate_proxy_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
-
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n",
- tv.sec ()));
-
- ACE_OS::sleep (tv);
- }
- }
-
- return 0;
-}
-
-Thr_Supplier_Proxy::Thr_Supplier_Proxy (ACE_Event_Channel &ec,
- const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- ACE_INT32 conn_id)
- : Supplier_Proxy (ec, remote_addr, local_addr, conn_id)
-{
-}
-
-int
-Thr_Supplier_Proxy::open (void *)
-{
- // Turn off non-blocking I/O.
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "enable"), -1);
-
- // Call back to the <Event_Channel> to complete our initialization.
- else if (this->event_channel_.complete_proxy_connection (this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "complete_proxy_connection"), -1);
-
- // Reactivate message queue. If it was active then this is the
- // first time in and we need to spawn a thread, otherwise the queue
- // was inactive due to some problem and we've already got a thread.
- else if (this->msg_queue ()->activate () == ACE_Message_Queue<SYNCH_STRATEGY>::WAS_ACTIVE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) spawning new thread\n"));
- // Become an active object by spawning a new thread to transmit
- // events to peers.
- return this->activate (THR_NEW_LWP | THR_DETACHED);
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) reusing existing thread\n"));
- return 0;
- }
-}
-
-// Receive events from a Peer in a separate thread (note reuse of
-// existing code!).
-
-int
-Thr_Supplier_Proxy::svc (void)
-{
- for (;;)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) connected! Thr_Supplier_Proxy's handle = %d\n",
- this->peer ().get_handle ()));
-
- // Since this method runs in its own thread and processes events
- // for one connection it is OK to call down to the
- // <Supplier_Proxy::handle_input> method, which blocks on input.
-
- while (this->handle_input () != -1)
- continue;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) shutting down threaded Supplier_Proxy %d on handle %d\n",
- this->id (), this->get_handle ()));
-
- this->peer ().close ();
-
- // Deactivate the queue while we try to get reconnected.
- this->msg_queue ()->deactivate ();
-
- for (this->timeout (1);
- // Default is to reconnect synchronously.
- this->event_channel_.initiate_proxy_connection (this) == -1; )
- {
- ACE_Time_Value tv (this->timeout ());
- ACE_ERROR ((LM_ERROR,
- "(%t) reattempting connection, sec = %d\n",
- tv.sec ()));
- ACE_OS::sleep (tv);
- }
- }
- return 0;
-}
-
-#endif /* ACE_HAS_THREADS */
diff --git a/apps/Gateway/Gateway/Thr_Proxy_Handler.h b/apps/Gateway/Gateway/Thr_Proxy_Handler.h
deleted file mode 100644
index 275bc87b320..00000000000
--- a/apps/Gateway/Gateway/Thr_Proxy_Handler.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Thr_Proxy_Handler.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (_THR_IO_HANDLER)
-#define _THR_IO_HANDLER
-
-#include "Proxy_Handler.h"
-
-#if defined (ACE_HAS_THREADS)
-class Thr_Consumer_Proxy : public Consumer_Proxy
- // = TITLE
- // Runs each Output Proxy_Handler in a separate thread.
-{
-public:
- Thr_Consumer_Proxy (ACE_Event_Channel &,
- const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- ACE_INT32 conn_id);
-
- virtual int open (void *);
- // Initialize the threaded Consumer_Proxy object and spawn a new
- // thread.
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);
- // Send a message to a peer.
-
-protected:
- virtual int handle_input (ACE_HANDLE);
- // Called when Peer shutdown unexpectedly.
-
- virtual int svc (void);
- // Transmit peer messages.
-};
-
-class Thr_Supplier_Proxy : public Supplier_Proxy
- // = TITLE
- // Runs each Input Proxy_Handler in a separate thread.
-{
-public:
- Thr_Supplier_Proxy (ACE_Event_Channel &,
- const ACE_INET_Addr &remote_addr,
- const ACE_INET_Addr &local_addr,
- ACE_INT32 conn_id);
-
- virtual int open (void *);
- // Initialize the object and spawn a new thread.
-
-protected:
- virtual int svc (void);
- // Transmit peer messages.
-};
-#endif /* ACE_HAS_THREADS */
-#endif /* _THR_IO_HANDLER */
diff --git a/apps/Gateway/Gateway/cc_config b/apps/Gateway/Gateway/cc_config
deleted file mode 100644
index 96f9ebdedd7..00000000000
--- a/apps/Gateway/Gateway/cc_config
+++ /dev/null
@@ -1,10 +0,0 @@
-# Conn ID Hostname Remote Port Direction Max Retry Delay Local Port
-# ------- -------- ---- --------- --------------- ----------
- 1 tango.cs 10004 I 32 20000
-# 2 tango.cs 10004 O 32
- 3 merengue.cs 10004 O 32 20001
-# 4 mambo.cs 10004 O 32 20000
-# 5 lambada.cs 10004 O 32 20000
-# 6 tango.cs 10004 O 32 20000
-# 7 tango.cs 5001 I 32
-# 8 tango.cs 5002 O 32
diff --git a/apps/Gateway/Gateway/connection_config b/apps/Gateway/Gateway/connection_config
deleted file mode 100644
index ce6fa6b4adf..00000000000
--- a/apps/Gateway/Gateway/connection_config
+++ /dev/null
@@ -1,55 +0,0 @@
-# Configuration file that the gatewayd process uses to determine
-# connection information about proxies.
-#
-# The following provides an explanation for the fields in this file,
-# and how they relate to fields in the corresponding "consumer_config"
-# file.
-#
-# 1. Connection ID -- Each Connection Handler is given a unique ID
-# that is used in the "consumer_config" file to specify to which
-# Consumers the Event Channel will forward incoming events from
-# Suppliers using that connection. The Connection ID field is the
-# "key" that is used to match up connections in this file with the
-# Consumer subscription requests in the "consumer_config" file.
-# The connection ids should start at 1 and monotonically increase
-# by increments of 1. This makes it possible for the Gateway to
-# properly allocate connection ids for Peers that connect to it.
-#
-# 2. Host -- The host name where the Supplier/Consumer peerd
-# process is running.
-#
-# 3. Remote Port -- The port number where the remote
-# Supplier/Consumer peerd process is listening on.
-# If this is a '*' character it is an indication to the
-# Gateway to use the "default value," e.g., which can be provided
-# on the command-line, etc.
-#
-# 4. Handler Role -- i.e., Consumer ('C') or Supplier ('S')
-#
-# 5. Max Retry Timeout -- The maximum amount of time that we'll
-# wait between retry attempts (these start at 1 second and
-# double until they reach the Max Retry Timeout).
-# If this is a '*' character it is an indication to the
-# Gateway to use the "default value," e.g., which can be provided
-# on the command-line, etc.
-#
-# 6. Local Port -- The port number that we want to use for
-# our local Proxy connection. If this is the value 0 or the '*'
-# character, then we'll let the socket implementation pick this
-# value for us.
-#
-# 7. Priority -- Each Consumer/Supplier can be given a priority
-# that will determine its importance relative to other
-# Consumers/Suppliers (this feature isn't implemented yet).
-#
-# Connection Host Remote Handler Max Retry Local Priority
-# ID Port Role Timeout Port
-# ---------- -------- ------ ------ ---------- ----- --------
- 1 flamenco * S * * 1
- 2 lindy * C * * 1
-# 3 mambo.cs * C * * 1
-# 4 lambada.cs * C * * 1
-# 5 lambada.cs * C * * 1
-# 6 tango.cs * C * * 1
-# 7 tango.cs * S * * 1
-# 8 tango.cs * C * * 1
diff --git a/apps/Gateway/Gateway/consumer_config b/apps/Gateway/Gateway/consumer_config
deleted file mode 100644
index 1aaa3fc4028..00000000000
--- a/apps/Gateway/Gateway/consumer_config
+++ /dev/null
@@ -1,35 +0,0 @@
-# Configuration file that the gatewayd process uses to determine which
-# Consumers will receive events from which Suppliers. For now, the
-# Gateway only allows Consumers to "subscribe" to receive events from
-# particular Suppliers. A more flexible implementation will allow
-# Consumers to subscribe to particular types of events, as well.
-#
-# The following provides an explanation for the fields in this file,
-# and how they relate to fields in the corresponding "connection_config"
-# file.
-#
-# 1. Connection ID -- Each Connection Handler is given a unique ID
-# that is used in the "consumer_config" file to specify to which
-# Consumers the Event Channel will forward incoming events from
-# Suppliers. The Connection ID field is the "key" that is used to
-# match up Consumer subscription requests in this file with
-# connections in the "connection_config" file.
-#
-# 2. Event Type -- Indicates the type of the event. Consumers
-# can use this to only subscribe to certain types of events.
-# This feature is currently not implemented.
-#
-# 3. Consumers -- Indicates which Consumers will receive events sent
-# from this Proxy/Supplier ID, i.e., Consumers can subscribe to
-# receive events from particular Suppliers. Note that more than
-# one Consumer can subscribe to the same Supplier event, i.e.,
-# we support logical "multicast" (which is currently implemented
-# using multi-point unicast via TCP/IP).
-#
-# Connection Event Consumers
-# ID Type
-# ---------- ---- ---------
- 1 0 2
-# 2 0 3,4
-# 3 0 4
-# 4 0 5
diff --git a/apps/Gateway/Gateway/gatewayd.cpp b/apps/Gateway/Gateway/gatewayd.cpp
deleted file mode 100644
index 213400fcd60..00000000000
--- a/apps/Gateway/Gateway/gatewayd.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// peerd.h
-//
-// = DESCRIPTION
-// Driver for the gateway daemon (gatewayd). Note that this is
-// completely generic code due to the Service Configurator
-// framework!
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#include "ace/Service_Config.h"
-#include "Gateway.h"
-
-int
-main (int argc, char *argv[])
-{
- if (ACE_OS::access (ACE_DEFAULT_SVC_CONF, F_OK) != 0)
- {
- // Use static linking.
- ACE_Service_Object_Ptr sp = ACE_SVC_INVOKE (Gateway);
-
- if (sp->init (argc - 1, argv + 1) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "init"),
- 1);
-
- // Run forever, performing the configured services until we
- // are shut down by a SIGINT/SIGQUIT signal.
-
- ACE_Reactor::run_event_loop ();
-
- // Destructor of <ACE_Service_Object_Ptr> automagically call
- // <fini>.
- }
- else
- {
- if (ACE_Service_Config::open (argc, argv) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- 1);
- else // Use dynamic linking.
-
- // Run forever, performing the configured services until we are
- // shut down by a signal (e.g., SIGINT or SIGQUIT).
-
- ACE_Reactor::run_event_loop ();
- }
- return 0;
-}
diff --git a/apps/Gateway/Gateway/gatewayd.dsp b/apps/Gateway/Gateway/gatewayd.dsp
deleted file mode 100644
index 609c1901758..00000000000
--- a/apps/Gateway/Gateway/gatewayd.dsp
+++ /dev/null
@@ -1,57 +0,0 @@
-# Microsoft Developer Studio Project File - Name="gatewayd" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=gatewayd - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "gatewayd.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "gatewayd.mak" CFG="gatewayd - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "gatewayd - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 Gateway.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-# Begin Target
-
-# Name "gatewayd - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\gatewayd.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/apps/Gateway/Gateway/rt_config b/apps/Gateway/Gateway/rt_config
deleted file mode 100644
index e951a0f09be..00000000000
--- a/apps/Gateway/Gateway/rt_config
+++ /dev/null
@@ -1,7 +0,0 @@
-# Conn ID Logical ID Payload Destinations
-# ------- ---------- ------- ------------
-# 1 1 0 3,4,5
- 1 1 0 3
- 3 1 0 3
-# 4 1 0 4
-# 5 1 0 5
diff --git a/apps/Gateway/Gateway/svc.conf b/apps/Gateway/Gateway/svc.conf
deleted file mode 100644
index 9b35a7dcbd6..00000000000
--- a/apps/Gateway/Gateway/svc.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-#static Svc_Manager "-d -p 2913"
-dynamic Gateway Service_Object * ./Gateway:_make_Gateway() active "-b -d -c C|S -a C|S -P connection_config -C consumer_config"
-
diff --git a/apps/Gateway/Makefile b/apps/Gateway/Makefile
deleted file mode 100644
index feb67278477..00000000000
--- a/apps/Gateway/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Gateway application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = Gateway \
- Peer
-
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
-
diff --git a/apps/Gateway/Peer/Event.h b/apps/Gateway/Peer/Event.h
deleted file mode 100644
index 5e288edf910..00000000000
--- a/apps/Gateway/Peer/Event.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Event.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#if !defined (EVENT)
-#define EVENT
-
-#include "ace/OS.h"
-
-// This is the unique connection identifier that denotes a particular
-// Proxy_Handler in the Gateway.
-typedef ACE_INT32 ACE_INT32;
-
-class Event_Key
- // = TITLE
- // Address used to identify the source/destination of an event.
- //
- // = DESCRIPTION
- // This is really a "virtual forwarding address" thatis used to
- // decouple the filtering and forwarding logic of the Event
- // Channel from the format of the data.
-{
-public:
- Event_Key (ACE_INT32 cid = -1,
- u_char sid = 0,
- u_char type = 0)
- : conn_id_ (cid),
- supplier_id_ (sid),
- type_ (type) {}
-
- int operator== (const Event_Key &event_addr) const
- {
- return this->conn_id_ == event_addr.conn_id_
- && this->supplier_id_ == event_addr.supplier_id_
- && this->type_ == event_addr.type_;
- }
-
- ACE_INT32 conn_id_;
- // Unique connection identifier that denotes a particular
- // Proxy_Handler.
-
- ACE_INT32 supplier_id_;
- // Logical ID.
-
- ACE_INT32 type_;
- // Event type.
-};
-
-class Event_Header
- // = TITLE
- // Fixed sized header.
- //
- // = DESCRIPTION
- // This is designed to have a sizeof (16) to avoid alignment
- // problems on most platforms.
-{
-public:
- typedef ACE_INT32 SUPPLIER_ID;
- // Type used to forward events from gatewayd.
-
- enum
- {
- INVALID_ID = -1 // No peer can validly use this number.
- };
-
- void decode (void)
- {
- this->len_ = ntohl (this->len_);
- this->supplier_id_ = ntohl (this->supplier_id_);
- this->type_ = ntohl (this->type_);
- this->priority_ = ntohl (this->priority_);
- }
- // Decode from network byte order to host byte order.
-
- void encode (void)
- {
- this->len_ = htonl (this->len_);
- this->supplier_id_ = htonl (this->supplier_id_);
- this->type_ = htonl (this->type_);
- this->priority_ = htonl (this->priority_);
- }
- // Encode from host byte order to network byte order.
-
- size_t len_;
- // Length of the data_ payload, in bytes.
-
- SUPPLIER_ID supplier_id_;
- // Source ID.
-
- ACE_INT32 type_;
- // Event type.
-
- ACE_INT32 priority_;
- // Event priority.
-};
-
-class Event
- // = TITLE
- // Variable-sized event (data_ may be variable-sized between
- // 0 and MAX_PAYLOAD_SIZE).
-{
-public:
- enum { MAX_PAYLOAD_SIZE = 1024 };
- // The maximum size of an Event.
-
- Event_Header header_;
- // Event header.
-
- char data_[MAX_PAYLOAD_SIZE];
- // Event data.
-};
-
-#endif /* EVENT */
diff --git a/apps/Gateway/Peer/Gateway_Handler.cpp b/apps/Gateway/Peer/Gateway_Handler.cpp
deleted file mode 100644
index cfc9a7dad6f..00000000000
--- a/apps/Gateway/Peer/Gateway_Handler.cpp
+++ /dev/null
@@ -1,652 +0,0 @@
-#include "ace/Get_Opt.h"
-// $Id$
-
-
-#include "Gateway_Handler.h"
-
-Gateway_Handler::Gateway_Handler (ACE_Thread_Manager *)
- : routing_id_ (0),
- msg_frag_ (0),
- total_bytes_ (0)
-{
- this->msg_queue ()->high_water_mark (Gateway_Handler::QUEUE_SIZE);
-}
-
-int
-Gateway_Handler::handle_signal (int signum, siginfo_t *, ucontext_t *)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) %S\n", signum));
-
- // Shut down the main event loop.
- ACE_Service_Config::end_reactor_event_loop ();
- return 0;
-}
-
-// Cache a binding to the HANDLER_MAP.
-
-void
-Gateway_Handler::map (HANDLER_MAP *m)
-{
- this->map_ = m;
-}
-
-// Upcall from the ACE_Acceptor::handle_input() that turns control
-// over to our application-specific Gateway handler.
-
-int
-Gateway_Handler::open (void *a)
-{
- ACE_DEBUG ((LM_DEBUG, "Gateway handler's fd = %d\n",
- this->peer ().get_handle ()));
-
- // Call down to the base class to activate and register this
- // handler.
- if (this->inherited::open (a) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
-
- if (this->peer ().enable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "enable"), -1);
-
- Gateway_Handler *this_ = this;
-
- // Add ourselves to the map so we can be removed later on.
- if (this->map_->bind (this->get_handle (), this_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "bind"), -1);
-
- char *to = ACE_OS::getenv ("TIMEOUT");
- int timeout = to == 0 ? 100000 : ACE_OS::atoi (to);
-
- // Schedule the time between disconnects. This should really be a
- // "tunable" parameter.
- if (ACE_Service_Config::reactor ()->schedule_timer (this, 0, timeout) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "schedule_timer"));
-
- // If there are messages left in the queue, make sure we
- // enable the ACE_Reactor appropriately to get them sent out.
- if (this->msg_queue ()->is_empty () == 0
- && ACE_Service_Config::reactor ()->schedule_wakeup (this,
- ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "schedule_wakeup"), -1);
-
- // First action is to wait to be notified of our routing id.
- this->do_action_ = &Gateway_Handler::await_route_id;
- return 0;
-}
-
-// Read messages from stdin and send them to the gatewayd.
-
-int
-Gateway_Handler::xmit_stdin (void)
-{
- if (this->routing_id_ != -1)
- {
- ssize_t n;
- ACE_Message_Block *mb;
-
- ACE_NEW_RETURN (mb,
- ACE_Message_Block (sizeof (Event)),
- -1);
-
- Event *peer_msg = (Event *) mb->rd_ptr ();
- peer_msg->header_.routing_id_ = this->routing_id_;
-
- n = ACE_OS::read (ACE_STDIN, peer_msg->buf_, sizeof peer_msg->buf_);
-
- switch (n)
- {
- case 0:
- ACE_DEBUG ((LM_DEBUG, "stdin closing down\n"));
-
- // Take stdin out of the ACE_Reactor so we stop trying to
- // send messages.
- if (ACE_Service_Config::reactor ()->remove_handler
- (0, ACE_Event_Handler::DONT_CALL | ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "remove_handler"));
- delete mb;
- break;
- case -1:
- delete mb;
- ACE_ERROR ((LM_ERROR, "%p\n", "read"));
- break;
- default:
- peer_msg->header_.len_ = htonl (n);
- mb->wr_ptr (sizeof (Peer_Header) + n);
-
- if (this->put (mb) == -1)
- {
- if (errno == EWOULDBLOCK) // The queue has filled up!
- ACE_ERROR ((LM_ERROR, "%p\n",
- "gateway is flow controlled, so we're dropping messages"));
- else
- ACE_ERROR ((LM_ERROR, "%p\n", "transmission failure in xmit_stdin"));
-
- // Caller is responsible for freeing a ACE_Message_Block
- // if failures occur.
- delete mb;
- }
- }
- }
- return 0;
-}
-
-// Perform a non-blocking put() of message MB. If we are unable to
-// send the entire message the remainder is re-Taskd at the *front* of
-// the Message_List.
-
-int
-Gateway_Handler::nonblk_put (ACE_Message_Block *mb)
-{
- // Try to send the message. If we don't send it all (e.g., due to
- // flow control), then re-ACE_Task the remainder at the head of the
- // Message_List and ask the ACE_Reactor to inform us (via
- // handle_output()) when it is possible to try again.
-
- ssize_t n;
-
- if ((n = this->send_peer (mb)) == -1)
- return -1;
- else if (errno == EWOULDBLOCK) // Didn't manage to send everything.
- {
- ACE_DEBUG ((LM_DEBUG,
- "queueing activated on handle %d to routing id %d\n",
- this->get_handle (), this->routing_id_));
-
- // ACE_Queue in *front* of the list to preserve order.
- if (this->msg_queue ()->enqueue_head
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "enqueue_head"), -1);
-
- // Tell ACE_Reactor to call us back when we can send again.
- if (ACE_Service_Config::reactor ()->schedule_wakeup
- (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "schedule_wakeup"), -1);
- return 0;
- }
- else
- return n;
-}
-
-// Finish sending a message when flow control conditions abate. This
-// method is automatically called by the ACE_Reactor.
-
-int
-Gateway_Handler::handle_output (ACE_HANDLE)
-{
- ACE_Message_Block *mb = 0;
-
- ACE_DEBUG ((LM_DEBUG, "in handle_output\n"));
- // The list had better not be empty, otherwise there's a bug!
-
- if (this->msg_queue ()->dequeue_head
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) != -1)
- {
- switch (this->nonblk_put (mb))
- {
- case 0: // Partial send.
- ACE_ASSERT (errno == EWOULDBLOCK);
- // Didn't write everything this time, come back later...
- break;
-
- case -1:
- // Caller is responsible for freeing a ACE_Message_Block if
- // failures occur.
- delete mb;
- ACE_ERROR ((LM_ERROR, "%p\n",
- "transmission failure in handle_output"));
-
- /* FALLTHROUGH */
- default: // Sent the whole thing.
-
- // If we succeed in writing the entire message (or we did
- // not fail due to EWOULDBLOCK) then check if there are more
- // messages on the Message_List. If there aren't, tell the
- // ACE_Reactor not to notify us anymore (at least until
- // there are new messages queued up).
-
- if (this->msg_queue ()->is_empty ())
- {
- ACE_DEBUG ((LM_DEBUG,
- "queue now empty on handle %d to routing id %d\n",
- this->get_handle (),
- this->routing_id_));
-
- if (ACE_Service_Config::reactor ()->cancel_wakeup
- (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "cancel_wakeup"));
- }
- }
- }
- else
- ACE_ERROR ((LM_ERROR, "%p\n", "dequeue_head"));
- return 0;
-}
-
-// Send a message to a peer (may ACE_Task if necessary).
-
-int
-Gateway_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- if (this->msg_queue ()->is_empty ())
- // Try to send the message *without* blocking!
- return this->nonblk_put (mb);
- else
- // If we have queued up messages due to flow control then just
- // enqueue and return.
- return this->msg_queue ()->enqueue_tail
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Send an Peer message to gatewayd.
-
-int
-Gateway_Handler::send_peer (ACE_Message_Block *mb)
-{
- ssize_t n;
- size_t len = mb->length ();
-
- if ((n = this->peer ().send (mb->rd_ptr (), len)) <= 0)
- return errno == EWOULDBLOCK ? 0 : n;
- else if (n < (ssize_t) len)
- {
- // Re-adjust pointer to skip over the part we did send.
- mb->rd_ptr (n);
- this->total_bytes_ += n;
- }
- else /* if (n == length) */
- {
- // The whole message is sent, we can now safely deallocate the
- // buffer. Note that this should decrement a reference count...
- this->total_bytes_ += n;
- delete mb;
- errno = 0;
- }
- ACE_DEBUG ((LM_DEBUG, "sent %d bytes, total bytes sent = %d\n",
- n, this->total_bytes_));
- return n;
-}
-
-// Receive an Peer message from gatewayd. Handles fragmentation.
-
-int
-Gateway_Handler::recv_peer (ACE_Message_Block *&mb)
-{
- Event *peer_msg;
- size_t len;
- ssize_t n;
- size_t offset = 0;
-
- if (this->msg_frag_ == 0)
- {
- ACE_NEW_RETURN (this->msg_frag_,
- ACE_Message_Block (sizeof (Event)),
- -1);
-
- // No existing fragment...
- if (this->msg_frag_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "out of memory\n"), -1);
-
- peer_msg = (Event *) this->msg_frag_->rd_ptr ();
-
- switch (n = this->peer ().recv (peer_msg, sizeof (Peer_Header)))
- {
- case sizeof (Peer_Header):
- len = ntohl (peer_msg->header_.len_);
- if (len <= sizeof peer_msg->buf_)
- {
- this->msg_frag_->wr_ptr (sizeof (Peer_Header));
- break; // The message is within the maximum size range.
- }
- else
- ACE_ERROR ((LM_ERROR, "message too long = %d\n", len));
- /* FALLTHROUGH */
- default:
- ACE_ERROR ((LM_ERROR, "invalid length = %d\n", n));
- n = -1;
- /* FALLTHROUGH */
- case -1:
- /* FALLTHROUGH */
- case 0:
- // Make sure to free up memory on error returns.
- delete this->msg_frag_;
- this->msg_frag_ = 0;
- return n;
- }
- }
- else
- {
- offset = this->msg_frag_->length () - sizeof (Peer_Header);
- len = peer_msg->header_.len_ - offset;
- }
-
- switch (n = this->peer ().recv (peer_msg->buf_ + offset, len))
- {
- case -1:
- if (errno == EWOULDBLOCK)
- {
- // This shouldn't happen since the ACE_Reactor
- // just triggered us to handle pending I/O!
- ACE_DEBUG ((LM_DEBUG, "unexpected recv failure\n"));
- // Since ACE_DEBUG might change errno, we need to reset it
- // here.
- errno = EWOULDBLOCK;
- return -1;
- }
- else
- /* FALLTHROUGH */;
-
- case 0: // EOF.
- delete this->msg_frag_;
- this->msg_frag_ = 0;
- return n;
-
- default:
- if (n != (ssize_t) len)
- // Re-adjust pointer to skip over the part we've read.
- {
- this->msg_frag_->wr_ptr (n);
- errno = EWOULDBLOCK;
- // Inform caller that we didn't get the whole message.
- return -1;
- }
- else
- {
- // Set the write pointer at 1 past the end of the message.
- this->msg_frag_->wr_ptr (n);
-
- // Set the read pointer to the beginning of the message.
- this->msg_frag_->rd_ptr (this->msg_frag_->base ());
-
- mb = this->msg_frag_;
-
- // Reset the pointer to indicate we've got an entire
- // message.
- this->msg_frag_ = 0;
- }
- return n;
- }
-}
-
-// Receive various types of input (e.g., Peer message from the
-// gatewayd, as well as stdio).
-
-int
-Gateway_Handler::handle_input (ACE_HANDLE sd)
-{
- ACE_DEBUG ((LM_DEBUG, "in handle_input, sd = %d\n", sd));
- if (sd == ACE_STDIN) // Handle message from stdin.
- return this->xmit_stdin ();
- else
- // Perform the appropriate action depending on the state we are
- // in.
- return (this->*do_action_) ();
-}
-
-// Action that receives the route id.
-
-int
-Gateway_Handler::await_route_id (void)
-{
- ssize_t n = this->peer ().recv (&this->routing_id_,
- sizeof this->routing_id_);
-
- if (n != sizeof this->routing_id_)
- {
- if (n == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "gatewayd has closed down unexpectedly\n"), -1);
- else
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p, bytes received on handle %d = %d\n",
- "recv", this->get_handle (), n), -1);
- }
- else
- ACE_DEBUG ((LM_DEBUG, "assigned routing id %d\n",
- this->routing_id_));
-
- // Transition to the action that waits for Peer messages.
- this->do_action_ = &Gateway_Handler::await_messages;
-
- // Reset standard input.
- ACE_OS::rewind (stdin);
-
- // Register this handler to receive test messages on stdin.
- if (ACE_Service_Config::reactor ()->register_handler
- (ACE_STDIN, this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "register_handler"), -1);
- return 0;
-}
-
-// Action that receives messages.
-
-int
-Gateway_Handler::await_messages (void)
-{
- ACE_Message_Block *mb = 0;
- ssize_t n = this->recv_peer (mb);
-
- switch (n)
- {
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR, "gatewayd has closed down\n"), -1);
- /* NOTREACHED */
- case -1:
- if (errno == EWOULDBLOCK)
- // A short-read, we'll come back and finish it up later on!
- return 0;
- else
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "recv_peer"), -1);
- /* NOTREACHED */
- default:
- {
- // We got a valid message, so let's process it now! At the
- // moment, we just print out the message contents...
-
- Event *peer_msg = (Event *) mb->rd_ptr ();
- this->total_bytes_ += mb->length ();
-
-#if defined (VERBOSE)
- ACE_DEBUG ((LM_DEBUG,
- "route id = %d, len = %d, payload = %*s",
- peer_msg->header_.routing_id_, peer_msg->header_.len_,
- peer_msg->header_.len_, peer_msg->buf_));
-#else
- ACE_DEBUG ((LM_DEBUG,
- "route id = %d, cur len = %d, total len = %d\n",
- peer_msg->header_.routing_id_,
- peer_msg->header_.len_,
- this->total_bytes_));
-#endif
- delete mb;
- return 0;
- }
- }
-}
-
-// Periodically send messages via ACE_Reactor timer mechanism.
-
-int
-Gateway_Handler::handle_timeout (const ACE_Time_Value &, const void *)
-{
- // Skip over deactivated descriptors.
- if (this->get_handle () != -1)
- {
- // Unbind ourselves from the map.
- if (this->map_->unbind (this->get_handle ()) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "unbind"));
-
- // Shut down the handler.
- this->handle_close ();
- }
- return 0;
-}
-
-// Handle shutdown of the Gateway_Handler object.
-
-int
-Gateway_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- if (this->get_handle () != ACE_INVALID_HANDLE)
- {
- ACE_DEBUG ((LM_DEBUG, "shutting down Gateway_Handler on handle %d\n",
- this->get_handle ()));
-
- // Explicitly remove ourselves for handle 0 (the ACE_Reactor
- // removes this->handle (), note that
- // ACE_Event_Handler::DONT_CALL instructs the ACE_Reactor *not*
- // to call this->handle_close(), which would otherwise lead to
- // recursion!).
- if (ACE_Service_Config::reactor ()->remove_handler
- (0, ACE_Event_Handler::DONT_CALL | ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR ((LM_ERROR, "handle = %d: %p\n",
- 0, "remove_handler"));
-
- // Deregister this handler with the ACE_Reactor.
- if (ACE_Service_Config::reactor ()->remove_handler
- (this, ACE_Event_Handler::DONT_CALL | ACE_Event_Handler::RWE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "handle = %d: %p\n",
- this->get_handle (), "remove_handler"), -1);
-
- // Close down the peer.
- this->peer ().close ();
- }
- return 0;
-}
-
-Gateway_Acceptor::Gateway_Acceptor (Gateway_Handler *handler)
- : gateway_handler_ (handler)
-{
- this->gateway_handler_->map (&this->map_);
-}
-
-// Note how this method just passes back the pre-allocated
-// Gateway_Handler instead of having the ACE_Acceptor allocate a new
-// one each time!
-
-Gateway_Handler *
-Gateway_Acceptor::make_svc_handler (void)
-{
- return this->gateway_handler_;
-}
-
-int
-Gateway_Acceptor::handle_signal (int signum, siginfo_t *, ucontext_t *)
-{
- ACE_DEBUG ((LM_DEBUG, "signal %S occurred\n", signum));
- return 0;
-}
-
-/* Returns information on the currently active service. */
-
-int
-Gateway_Acceptor::info (char **strp, size_t length) const
-{
- char buf[BUFSIZ];
- char addr_str[BUFSIZ];
-
- ACE_INET_Addr addr;
-
- if (this->acceptor ().get_local_addr (addr) == -1)
- return -1;
- else if (addr.addr_to_string (addr_str, sizeof addr) == -1)
- return -1;
-
- ACE_OS::sprintf (buf, "%s\t %s/%s %s",
- "Gateway peer daemon", addr_str, "tcp",
- "# IRIDIUM SRP traffic generator and data sink\n");
-
- if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
- return -1;
- else
- ACE_OS::strncpy (*strp, buf, length);
- return ACE_OS::strlen (buf);
-}
-
-// Hook called by the explicit dynamic linking facility to terminate
-// the peer.
-
-int
-Gateway_Acceptor::fini (void)
-{
- HANDLER_ITERATOR mi (this->map_);
-
- for (MAP_ENTRY *me = 0;
- mi.next (me) != 0;
- mi.advance ())
- {
- if (me->int_id_->get_handle () != -1)
- {
- ACE_DEBUG ((LM_DEBUG, "closing down handle %d\n",
- me->int_id_->get_handle ()));
- me->int_id_->handle_close ();
- }
- else
- ACE_DEBUG ((LM_DEBUG, "already closed %d\n"));
- me->int_id_->destroy (); // Will trigger a delete.
- }
-
- this->gateway_handler_->destroy (); // Will trigger a delete.
- return inherited::fini ();
-}
-
-// Hook called by the explicit dynamic linking facility to initialize
-// the peer.
-
-int
-Gateway_Acceptor::init (int argc, char *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "dp:", 0);
- ACE_INET_Addr addr;
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'p':
- addr.set (ACE_OS::atoi (get_opt.optarg));
- break;
- case 'd':
- break;
- default:
- break;
- }
- }
-
- if (ACE_Service_Config::reactor ()->register_handler (SIGPIPE, this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "register_handler"), -1);
-
- if (this->open (addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
- else if (ACE_Service_Config::reactor ()->register_handler
- (this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "registering service with ACE_Reactor\n"), -1);
-
- ACE_Sig_Set sig_set;
- sig_set.sig_add (SIGINT);
- sig_set.sig_add (SIGQUIT);
-
- // Register ourselves to receive SIGINT and SIGQUIT so we can shut
- // down gracefully via signals.
-
- if (ACE_Service_Config::reactor ()->register_handler (sig_set,
- this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_handler"), -1);
- return 0;
-}
-
-// Dynamically linked factory function that dynamically allocates a
-// new Gateway_Acceptor object.
-
-ACE_Service_Object *
-_alloc_peerd (void)
-{
- // This function illustrates how we can associate a ACE_Svc_Handler
- // with the ACE_Acceptor at initialization time.
- Gateway_Handler *handler;
-
- ACE_NEW_RETURN (handler, Gateway_Handler, 0);
- ACE_Service_Object *temp;
-
- ACE_NEW_RETURN (temp, Gateway_Acceptor (handler), 0);
- return temp;
-}
diff --git a/apps/Gateway/Peer/Gateway_Handler.h b/apps/Gateway/Peer/Gateway_Handler.h
deleted file mode 100644
index 6dc4539e6b7..00000000000
--- a/apps/Gateway/Peer/Gateway_Handler.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-/* These Gateway handler classes process Peer messages sent from the
- communication gateway daemon (gatewayd) to its various peers, e.g.,
- CF and ETS, (represented collectively in this prototype as peerd).
- . These classes works as follows:
-
- 1. Gateway_Acceptor creates a listener endpoint and waits passively
- for gatewayd to connect with it.
-
- 2. When gatewayd connects, Gateway_Acceptor creates an
- Gateway_Handler object that sends/receives messages from
- gatewayd.
-
- 3. Gateway_Handler waits for gatewayd to inform it of its routing
- ID, which is prepended to all outgoing messages send from peerd.
-
- 4. Once the routing ID is set, peerd periodically sends messages to
- gatewayd. Peerd also receives and "processes" messages
- forwarded to it from gatewayd. In this program, peerd
- "processes" messages by writing them to stdout. */
-
-#if !defined (GATEWAY_HANDLER)
-#define GATEWAY_HANDLER
-
-#include "ace/Service_Config.h"
-#include "ace/Svc_Handler.h"
-#include "ace/Acceptor.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/INET_Addr.h"
-#include "ace/Map_Manager.h"
-#include "Peer_Message.h"
-
-// Forward declaration.
-class Gateway_Handler;
-
-// Maps a ACE_HANDLE onto a Gateway_Handler *.
-typedef ACE_Map_Manager <ACE_HANDLE, Gateway_Handler *, ACE_Null_Mutex> HANDLER_MAP;
-typedef ACE_Map_Iterator<ACE_HANDLE, Gateway_Handler *, ACE_Null_Mutex> HANDLER_ITERATOR;
-typedef ACE_Map_Entry <ACE_HANDLE, Gateway_Handler *> MAP_ENTRY;
-
-// Handle Peer messages arriving as events.
-
-class Gateway_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-public:
- Gateway_Handler (ACE_Thread_Manager * = 0);
-
- virtual int open (void * = 0);
- // Initialize the handler (called by ACE_Acceptor::handle_input())
-
- virtual int handle_input (ACE_HANDLE);
- // Receive and process peer messages.
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value *tv = 0);
- // Send a message to a gateway (may be queued if necessary).
-
- virtual int handle_output (ACE_HANDLE);
- // Finish sending a message when flow control conditions abate.
-
- virtual int handle_timeout (const ACE_Time_Value &,
- const void *arg);
- // Periodically send messages via ACE_Reactor timer mechanism.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::RWE_MASK);
- // Perform object termination.
-
- void map (HANDLER_MAP *);
- // Cache a binding to the HANDLER_MAP.
-
-protected:
- typedef ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> inherited;
-
- // We'll allow up to 16 megabytes to be queued per-output
- // channel!!!! This is clearly a policy in search of refinement...
- enum { QUEUE_SIZE = 1024 * 1024 * 16 };
-
- int handle_signal (int signum, siginfo_t *, ucontext_t *);
-
- Peer_Header::ROUTING_ID routing_id_;
- // Routing ID of the peer (obtained from gatewayd).
-
- virtual int nonblk_put (ACE_Message_Block *mb);
- // Perform a non-blocking put().
-
- virtual int recv_peer (ACE_Message_Block *&);
- // Receive an Peer message from gatewayd.
-
- virtual int send_peer (ACE_Message_Block *);
- // Send an Peer message to gatewayd.
-
- int xmit_stdin (void);
- // Receive a message from stdin and send it to the gateway.
-
- int (Gateway_Handler::*do_action_) (void);
- // Pointer-to-member-function for the current action to run in this state.
-
- int await_route_id (void);
- // Action that receives the route id.
-
- int await_messages (void);
- // Action that receives messages.
-
- ACE_Message_Block *msg_frag_;
- // Keep track of message fragment to handle non-blocking recv's from gateway.
-
- size_t total_bytes_;
- // The total number of bytes sent/received to the gateway.
-
- HANDLER_MAP *map_;
- // Maps the ACE_HANDLE onto the Gateway_Handler *.
-};
-
-// A factory class that accept connections from gatewayd and
-// dynamically creates a new Gateway_Handler object to do the dirty work.
-
-class Gateway_Acceptor : public ACE_Acceptor<Gateway_Handler, ACE_SOCK_ACCEPTOR>
-{
-public:
- // = Initialization methods, called when dynamically linked.
- Gateway_Acceptor (Gateway_Handler *handler);
- virtual int init (int argc, char *argv[]);
- // Initialize the acceptor.
-
- virtual int info (char **, size_t) const;
- // Return info about this service.
-
- virtual int fini (void);
- // Perform termination.
-
- virtual Gateway_Handler *make_svc_handler (void);
- // Factory method that creates the Gateway_Handler once.
-
- virtual int handle_signal (int signum, siginfo_t *, ucontext_t *);
- // Handle various signals (e.g., SIGPIPE)
-
- HANDLER_MAP map_;
- // Maps the ACE_HANDLE onto the Gateway_Handler *.
-
- Gateway_Handler *gateway_handler_;
- // Pointer to memory allocated exactly once.
-
- typedef ACE_Acceptor<Gateway_Handler, ACE_SOCK_ACCEPTOR> inherited;
-};
-
-// Factory function that allocates a new Peer daemon.
-extern "C" ACE_Service_Object *_alloc_peerd (void);
-
-#endif /* GATEWAY_HANDLER */
-
diff --git a/apps/Gateway/Peer/Makefile b/apps/Gateway/Peer/Makefile
deleted file mode 100644
index 3492a8c74cc..00000000000
--- a/apps/Gateway/Peer/Makefile
+++ /dev/null
@@ -1,175 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Peer test driver portion of the Gateway application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = peerd
-LIB = libPeer.a
-SHLIB = libPeer.$(SOEXT)
-
-FILES = Options \
- Peer
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LDLIBS = -lPeer
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-BUILD = $(VLIB) $(VSHLIB) $(SHLIBA) $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-INCLDIRS += -I../Gateway
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/Options.o .obj/Options.so .shobj/Options.o .shobj/Options.so: Options.cpp \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Get_Opt.i Options.h \
- ../Gateway/Event.h
-.obj/Peer.o .obj/Peer.so .shobj/Peer.o .shobj/Peer.so: Peer.cpp Peer.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Acceptor.i \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Options.h ../Gateway/Event.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/Gateway/Peer/Options.cpp b/apps/Gateway/Peer/Options.cpp
deleted file mode 100644
index 1e6a2043784..00000000000
--- a/apps/Gateway/Peer/Options.cpp
+++ /dev/null
@@ -1,189 +0,0 @@
-// $Id$
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/Get_Opt.h"
-#include "Options.h"
-
-// Static initialization.
-Options *Options::instance_ = 0;
-
-void
-Options::print_usage_and_die (void)
-{
- ACE_DEBUG ((LM_DEBUG, "%n [-a {C|S}:acceptor-port] [-c {C|S}:connector-port] [-C connection-id] [-h gateway-host] [-q max-queue-size] [-t timeout] [-v]\n"));
-}
-
-Options::Options (void)
- : options_ (0),
- supplier_acceptor_port_ (DEFAULT_PEER_SUPPLIER_PORT),
- consumer_acceptor_port_ (DEFAULT_PEER_CONSUMER_PORT),
- supplier_connector_port_ (DEFAULT_GATEWAY_SUPPLIER_PORT),
- consumer_connector_port_ (DEFAULT_GATEWAY_CONSUMER_PORT),
- connector_host_ (ACE_DEFAULT_SERVER_HOST),
- timeout_ (0),
- max_queue_size_ (MAX_QUEUE_SIZE),
- connection_id_ (0)
-{
- char *timeout = ACE_OS::getenv ("TIMEOUT");
-
- if (timeout == 0)
- this->timeout_ = Options::DEFAULT_TIMEOUT;
- else
- this->timeout_ = ACE_OS::atoi (timeout);
-}
-
-Options *
-Options::instance (void)
-{
- if (Options::instance_ == 0)
- ACE_NEW_RETURN (Options::instance_, Options, 0);
-
- return Options::instance_;
-}
-
-long
-Options::timeout (void) const
-{
- return this->timeout_;
-}
-
-CONNECTION_ID &
-Options::connection_id (void)
-{
- return this->connection_id_;
-}
-
-long
-Options::max_queue_size (void) const
-{
- return this->max_queue_size_;
-}
-
-u_short
-Options::consumer_acceptor_port (void) const
-{
- return this->consumer_acceptor_port_;
-}
-
-u_short
-Options::supplier_acceptor_port (void) const
-{
- return this->supplier_acceptor_port_;
-}
-
-u_short
-Options::consumer_connector_port (void) const
-{
- return this->consumer_connector_port_;
-}
-
-u_short
-Options::supplier_connector_port (void) const
-{
- return this->supplier_connector_port_;
-}
-
-const char *
-Options::connector_host (void) const
-{
- return this->connector_host_;
-}
-
-int
-Options::enabled (int option) const
-{
- return ACE_BIT_ENABLED (this->options_, option);
-}
-
-void
-Options::parse_args (int argc, char *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "a:c:C:h:m:t:v", 0);
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'a':
- {
- // Become an Acceptor.
-
- for (char *flag = ACE_OS::strtok (get_opt.optarg, "|");
- flag != 0;
- flag = ACE_OS::strtok (0, "|"))
- if (ACE_OS::strncasecmp (flag, "C", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::CONSUMER_ACCEPTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Consumer Acceptor port number.
- this->consumer_acceptor_port_ = ACE_OS::atoi (flag + 2);
- }
- else if (ACE_OS::strncasecmp (flag, "S", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::SUPPLIER_ACCEPTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Supplier Acceptor port number.
- this->supplier_acceptor_port_ = ACE_OS::atoi (flag + 2);
- }
- }
- break;
- /* NOTREACHED */
- case 'c':
- {
- // Become a Connector.
-
- for (char *flag = ACE_OS::strtok (get_opt.optarg, "|");
- flag != 0;
- flag = ACE_OS::strtok (0, "|"))
- if (ACE_OS::strncasecmp (flag, "C", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::CONSUMER_CONNECTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Consumer Connector port number.
- this->consumer_connector_port_ = ACE_OS::atoi (flag + 2);
- }
- else if (ACE_OS::strncasecmp (flag, "S", 1) == 0)
- {
- ACE_SET_BITS (this->options_,
- Options::SUPPLIER_CONNECTOR);
- if (ACE_OS::strlen (flag) > 1)
- // Set the Supplier Connector port number.
- this->supplier_connector_port_ = ACE_OS::atoi (flag + 2);
- }
- }
- break;
- /* NOTREACHED */
- case 'C':
- this->connection_id_ = ACE_OS::atoi (get_opt.optarg);
- break;
- /* NOTREACHED */
- case 'h':
- // connector host
- this->connector_host_ = get_opt.optarg;
- break;
- /* NOTREACHED */
- case 'm':
- // max queue size.
- this->max_queue_size_ = ACE_OS::atoi (get_opt.optarg);
- break;
- /* NOTREACHED */
- case 't':
- // Timeout
- this->timeout_ = ACE_OS::atoi (get_opt.optarg);
- break;
- /* NOTREACHED */
- case 'v':
- // Verbose mode.
- ACE_SET_BITS (this->options_, Options::VERBOSE);
- break;
- /* NOTREACHED */
- default:
- this->print_usage_and_die ();
- /* NOTREACHED */
- }
- }
-}
-
diff --git a/apps/Gateway/Peer/Options.h b/apps/Gateway/Peer/Options.h
deleted file mode 100644
index c957e1a295e..00000000000
--- a/apps/Gateway/Peer/Options.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Options.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#if !defined (OPTIONS_H)
-#define OPTIONS_H
-
-#include "../Gateway/Event.h"
-
-class ACE_Svc_Export Options
- // = TITLE
- // Singleton that consolidates all Options for a peerd.
-{
-public:
- // = Options that can be enabled/disabled.
- enum
- {
- VERBOSE = 01,
- SUPPLIER_ACCEPTOR = 02,
- CONSUMER_ACCEPTOR = 04,
- SUPPLIER_CONNECTOR = 010,
- CONSUMER_CONNECTOR = 020
- };
-
- static Options *instance (void);
- // Return Singleton.
-
- void parse_args (int argc, char *argv[]);
- // Parse the arguments and set the options.
-
- // = Accessor methods.
- int enabled (int option) const;
- // Determine if an option is enabled.
-
- u_short supplier_acceptor_port (void) const;
- // Our acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Supplier.
-
- u_short consumer_acceptor_port (void) const;
- // Our acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Consumer.
-
- u_short supplier_connector_port (void) const;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Supplier.
-
- u_short consumer_connector_port (void) const;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Consumer.
-
- const char *connector_host (void) const;
- // Our connector port host, i.e., the host running the gatewayd
- // process.
-
- long timeout (void) const;
- // Duration between disconnects.
-
- long max_queue_size (void) const;
- // The maximum size of the queue.
-
- CONNECTION_ID &connection_id (void);
- // Returns a reference to the connection id.
-
-private:
- enum
- {
- MAX_QUEUE_SIZE = 1024 * 1024 * 16,
- // We'll allow up to 16 megabytes to be queued per-output
- // channel!!!! This is clearly a policy in search of
- // refinement...
-
- DEFAULT_TIMEOUT = 60
- // By default, disconnect the peer every minute.
- };
-
- Options (void);
- // Ensure Singleton.
-
- void print_usage_and_die (void);
- // Explain usage and exit.
-
- static Options *instance_;
- // Singleton.
-
- u_long options_;
- // Flag to indicate if we want verbose diagnostics.
-
- u_short supplier_acceptor_port_;
- // The acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Supplier.
-
- u_short consumer_acceptor_port_;
- // The acceptor port number, i.e., the one that we passively listen
- // on for connections to arrive from a gatewayd and create a
- // Consumer.
-
- u_short supplier_connector_port_;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Supplier.
-
- u_short consumer_connector_port_;
- // The connector port number, i.e., the one that we use to actively
- // establish connections with a gatewayd and create a Consumer.
-
- char *connector_host_;
- // Our connector host, i.e., where the gatewayd process is running.
-
- long timeout_;
- // The amount of time to wait before disconnecting from the Peerd.
-
- long max_queue_size_;
- // The maximum size that the queue can grow to.
-
- CONNECTION_ID connection_id_;
- // The connection id.
-};
-
-#endif /* OPTIONS_H */
diff --git a/apps/Gateway/Peer/Peer.cpp b/apps/Gateway/Peer/Peer.cpp
deleted file mode 100644
index 134f7b8f7e8..00000000000
--- a/apps/Gateway/Peer/Peer.cpp
+++ /dev/null
@@ -1,844 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Peer.h"
-
-Peer_Handler::Peer_Handler (void)
- : connection_id_ (0),
- msg_frag_ (0),
- total_bytes_ (0)
-{
- // Set the high water mark of the <ACE_Message_Queue>. This is used
- // to exert flow control.
- this->msg_queue ()->high_water_mark (Options::instance ()->max_queue_size ());
-}
-
-// Upcall from the <ACE_Acceptor::handle_input> that turns control
-// over to our application-specific Gateway handler.
-
-int
-Peer_Handler::open (void *a)
-{
- ACE_DEBUG ((LM_DEBUG,
- "handle = %d\n",
- this->peer ().get_handle ()));
-
- // Call down to the base class to activate and register this handler
- // with an <ACE_Reactor>.
- if (this->inherited::open (a) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
-
- if (this->peer ().enable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "enable"), -1);
-
- ACE_Time_Value timeout (Options::instance ()->timeout ());
-
- // Schedule the time between disconnects. This should really be a
- // "tunable" parameter.
- if (ACE_Reactor::instance ()->schedule_timer
- (this, 0, timeout) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "schedule_timer"));
-
- // If there are events left in the queue, make sure we enable the
- // <ACE_Reactor> appropriately to get them sent out.
- if (this->msg_queue ()->is_empty () == 0
- && ACE_Reactor::instance ()->schedule_wakeup
- (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "schedule_wakeup"),
- -1);
-
- // First action is to wait to be notified of our connection id.
- this->do_action_ = &Peer_Handler::await_connection_id;
- return 0;
-}
-
-int
-Peer_Handler::transmit (ACE_Message_Block *mb,
- size_t n,
- int event_type)
-{
- Event *event = (Event *) mb->rd_ptr ();
-
- // Initialize the header.
- new (&event->header_) Event_Header (n,
- this->connection_id_,
- 0,
- event_type);
-
- // Convert all the fields into network byte order.
- event->header_.encode ();
-
- // Move the write pointer to the end of the event.
- mb->wr_ptr (sizeof (Event_Header) + n);
-
- if (this->put (mb) == -1)
- {
- if (errno == EWOULDBLOCK) // The queue has filled up!
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "gateway is flow controlled, so we're dropping events"));
- else
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "transmission failure in transmit_stdin"));
- // Caller is responsible for freeing a ACE_Message_Block
- // if failures occur.
- mb->release ();
- return -1;
- }
- return 0;
-}
-
-// Read events from stdin and send them to the gatewayd.
-
-int
-Peer_Handler::transmit_stdin (void)
-{
- if (this->connection_id_ != -1)
- {
- ACE_Message_Block *mb;
-
- ACE_NEW_RETURN (mb,
- ACE_Message_Block (sizeof (Event)),
- -1);
-
- // Cast the message block payload into an <Event> pointer.
- Event *event = (Event *) mb->rd_ptr ();
-
- ssize_t n = ACE_OS::read (ACE_STDIN,
- event->data_,
- sizeof event->data_);
- switch (n)
- {
- case 0:
- ACE_DEBUG ((LM_DEBUG, "stdin closing down\n"));
-
- // Take stdin out of the ACE_Reactor so we stop trying to
- // send events.
- ACE_Reactor::instance ()->remove_handler
- (ACE_STDIN,
- ACE_Event_Handler::DONT_CALL | ACE_Event_Handler::READ_MASK);
- mb->release ();
- break;
- /* NOTREACHED */
- case -1:
- mb->release ();
- ACE_ERROR ((LM_ERROR, "%p\n", "read"));
- break;
- /* NOTREACHED */
- default:
- return this->transmit (mb, n, ROUTING_EVENT);
- /* NOTREACHED */
- }
- return 0;
- }
-
- ACE_DEBUG ((LM_DEBUG, "Must transmit over an opened channel.\n"));
- return -1;
-}
-
-// Perform a non-blocking <put> of event MB. If we are unable to send
-// the entire event the remainder is re-queue'd at the *front* of the
-// Message_Queue.
-
-int
-Peer_Handler::nonblk_put (ACE_Message_Block *mb)
-{
- // Try to send the event. If we don't send it all (e.g., due to
- // flow control), then re-queue the remainder at the head of the
- // <ACE_Message_Queue> and ask the <ACE_Reactor> to inform us (via
- // <handle_output>) when it is possible to try again.
-
- ssize_t n = this->send (mb);
-
- if (n == -1)
- return -1;
- else if (errno == EWOULDBLOCK)
- {
- // We didn't manage to send everything, so requeue.
- ACE_DEBUG ((LM_DEBUG,
- "queueing activated on handle %d to connection id %d\n",
- this->get_handle (),
- this->connection_id_));
-
- // Re-queue in *front* of the list to preserve order.
- if (this->msg_queue ()->enqueue_head
- (mb,
- (ACE_Time_Value *) &ACE_Time_Value::zero) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "enqueue_head"),
- -1);
- // Tell ACE_Reactor to call us back when we can send again.
- if (ACE_Reactor::instance ()->schedule_wakeup
- (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "schedule_wakeup"),
- -1);
- return 0;
- }
- else
- return n;
-}
-
-// Finish sending a event when flow control conditions abate. This
-// method is automatically called by the ACE_Reactor.
-
-int
-Peer_Handler::handle_output (ACE_HANDLE)
-{
- ACE_Message_Block *mb = 0;
-
- ACE_DEBUG ((LM_DEBUG, "in handle_output\n"));
-
- if (this->msg_queue ()->dequeue_head
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero) != -1)
- {
- switch (this->nonblk_put (mb))
- {
- case 0: // Partial send.
- ACE_ASSERT (errno == EWOULDBLOCK);
- // Didn't write everything this time, come back later...
- break;
- /* NOTREACHED */
- case -1:
- // Caller is responsible for freeing a ACE_Message_Block if
- // failures occur.
- mb->release ();
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "transmission failure in handle_output"));
- /* FALLTHROUGH */
- default: // Sent the whole thing.
- // If we succeed in writing the entire event (or we did not
- // fail due to EWOULDBLOCK) then check if there are more
- // events on the <ACE_Message_Queue>. If there aren't, tell
- // the <ACE_Reactor> not to notify us anymore (at least
- // until there are new events queued up).
-
- if (this->msg_queue ()->is_empty ())
- {
- ACE_DEBUG ((LM_DEBUG,
- "queue now empty on handle %d to connection id %d\n",
- this->get_handle (),
- this->connection_id_));
-
- if (ACE_Reactor::instance ()->cancel_wakeup
- (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "cancel_wakeup"));
- }
- }
- return 0;
- }
- else
- // If the list is empty there's a bug!
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "dequeue_head"),
- 0);
-}
-
-// Send an event to a peer (may block if necessary).
-
-int
-Peer_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- if (this->msg_queue ()->is_empty ())
- // Try to send the event *without* blocking!
- return this->nonblk_put (mb);
- else
- // If we have queued up events due to flow control then just
- // enqueue and return.
- return this->msg_queue ()->enqueue_tail
- (mb, (ACE_Time_Value *) &ACE_Time_Value::zero);
-}
-
-// Send an Peer event to gatewayd.
-
-int
-Peer_Handler::send (ACE_Message_Block *mb)
-{
- size_t len = mb->length ();
-
- ssize_t n = this->peer ().send (mb->rd_ptr (), len);
-
- if (n <= 0)
- return errno == EWOULDBLOCK ? 0 : n;
- else if (n < (ssize_t) len)
- {
- // Re-adjust pointer to skip over the part we did send.
- mb->rd_ptr (n);
- this->total_bytes_ += n;
- }
- else // if (n == length).
- {
- // The whole event is sent, we can now safely deallocate the
- // buffer. Note that this should decrement a reference count...
- this->total_bytes_ += n;
- mb->release ();
- errno = 0;
- }
-
- ACE_DEBUG ((LM_DEBUG, "sent %d bytes, total bytes sent = %d\n",
- n, this->total_bytes_));
- return n;
-}
-
-// Receive an Event from gatewayd. Handles fragmentation.
-
-int
-Peer_Handler::recv (ACE_Message_Block *&mb)
-{
- if (this->msg_frag_ == 0)
- // No existing fragment...
- ACE_NEW_RETURN (this->msg_frag_,
- ACE_Message_Block (sizeof (Event)),
- -1);
-
- Event *event = (Event *) this->msg_frag_->rd_ptr ();
- ssize_t header_received = 0;
-
- const size_t HEADER_SIZE = sizeof (Event_Header);
- ssize_t header_bytes_left_to_read =
- HEADER_SIZE - this->msg_frag_->length ();
-
- if (header_bytes_left_to_read > 0)
- {
- header_received = this->peer ().recv
- (this->msg_frag_->wr_ptr (),
- header_bytes_left_to_read);
-
- if (header_received == -1 /* error */
- || header_received == 0 /* EOF */)
- {
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "Recv error during header read"));
- ACE_DEBUG ((LM_DEBUG,
- "attempted to read %d bytes\n",
- header_bytes_left_to_read));
- this->msg_frag_ = this->msg_frag_->release ();
- return header_received;
- }
-
- // Bump the write pointer by the amount read.
- this->msg_frag_->wr_ptr (header_received);
-
- // At this point we may or may not have the ENTIRE header.
- if (this->msg_frag_->length () < HEADER_SIZE)
- {
- ACE_DEBUG ((LM_DEBUG,
- "Partial header received: only %d bytes\n",
- this->msg_frag_->length ()));
- // Notify the caller that we didn't get an entire event.
- errno = EWOULDBLOCK;
- return -1;
- }
-
- // Convert the header into host byte order so that we can access
- // it directly without having to repeatedly muck with it...
- event->header_.decode ();
-
- if (event->header_.len_ > ACE_INT32 (sizeof event->data_))
- {
- // This data_ payload is too big!
- errno = EINVAL;
- ACE_DEBUG ((LM_DEBUG,
- "Data payload is too big (%d bytes)\n",
- event->header_.len_));
- return -1;
- }
- }
-
- // At this point there is a complete, valid header in Event. Now we
- // need to get the event payload. Due to incomplete reads this may
- // not be the first time we've read in a fragment for this message.
- // We account for this here. Note that the first time in here
- // <msg_frag_->wr_ptr> will point to <event->data_>. Every time we
- // do a successful fragment read, we advance <wr_ptr>. Therefore,
- // by subtracting how much we've already read from the
- // <event->header_.len_> we complete the
- // <data_bytes_left_to_read>...
-
- ssize_t data_bytes_left_to_read =
- ssize_t (event->header_.len_ - (msg_frag_->wr_ptr () - event->data_));
-
- ssize_t data_received =
- this->peer ().recv (this->msg_frag_->wr_ptr (),
- data_bytes_left_to_read);
-
- // Try to receive the remainder of the event.
-
- switch (data_received)
- {
- case -1:
- if (errno == EWOULDBLOCK)
- // This might happen if only the header came through.
- return -1;
- else
- /* FALLTHROUGH */;
-
- case 0: // Premature EOF.
- this->msg_frag_ = this->msg_frag_->release ();
- return 0;
-
- default:
- // Set the write pointer at 1 past the end of the event.
- this->msg_frag_->wr_ptr (data_received);
-
- if (data_received != data_bytes_left_to_read)
- {
- errno = EWOULDBLOCK;
- // Inform caller that we didn't get the whole event.
- return -1;
- }
- else
- {
- // Set the read pointer to the beginning of the event.
- this->msg_frag_->rd_ptr (this->msg_frag_->base ());
-
- mb = this->msg_frag_;
-
- // Reset the pointer to indicate we've got an entire event.
- this->msg_frag_ = 0;
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) connection id = %d, cur len = %d, total bytes read = %d\n",
- event->header_.connection_id_,
- event->header_.len_,
- data_received + header_received));
- if (Options::instance ()->enabled (Options::VERBOSE))
- ACE_DEBUG ((LM_DEBUG,
- "data_ = %*s\n",
- event->header_.len_ - 2,
- event->data_));
- return data_received + header_received;
- }
-}
-
-// Receive various types of input (e.g., Peer event from the gatewayd,
-// as well as stdio).
-
-int
-Peer_Handler::handle_input (ACE_HANDLE sd)
-{
- ACE_DEBUG ((LM_DEBUG, "in handle_input, sd = %d\n", sd));
- if (sd == ACE_STDIN) // Handle event from stdin.
- return this->transmit_stdin ();
- else
- // Perform the appropriate action depending on the state we are
- // in.
- return (this->*do_action_) ();
-}
-
-// Action that receives our connection id from the Gateway.
-
-int
-Peer_Handler::await_connection_id (void)
-{
- ssize_t n = this->peer ().recv (&this->connection_id_,
- sizeof this->connection_id_);
-
- if (n != sizeof this->connection_id_)
- {
- if (n == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "gatewayd has closed down unexpectedly\n"),
- -1);
- else
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p, bytes received on handle %d = %d\n",
- "recv",
- this->get_handle (),
- n),
- -1);
- }
- else
- {
- this->connection_id_ = ntohl (this->connection_id_);
- ACE_DEBUG ((LM_DEBUG,
- "assigned connection id %d\n",
- this->connection_id_));
- }
-
- // Subscribe for events if we're a Consumer.
- if (Options::instance ()->enabled (Options::CONSUMER_CONNECTOR))
- this->subscribe ();
-
- // Transition to the action that waits for Peer events.
- this->do_action_ = &Peer_Handler::await_events;
-
- // Reset standard input.
- ACE_OS::rewind (stdin);
-
- // Register this handler to receive test events on stdin.
- if (ACE::register_stdin_handler (this,
- ACE_Reactor::instance (),
- ACE_Thread_Manager::instance ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "register_stdin_handler"), -1);
-
- return 0;
-}
-
-int
-Peer_Handler::subscribe (void)
-{
- ACE_Message_Block *mb;
-
- ACE_NEW_RETURN (mb,
- ACE_Message_Block (sizeof (Event)),
- -1);
-
- Subscription *subscription = (Subscription *) ((Event *) mb->rd_ptr ())->data_;
- subscription->connection_id_ = Options::instance ()->connection_id ();
- return this->transmit (mb, sizeof *subscription, SUBSCRIPTION_EVENT);
-}
-
-// Action that receives events from the Gateway.
-
-int
-Peer_Handler::await_events (void)
-{
- ACE_Message_Block *mb = 0;
-
- ssize_t n = this->recv (mb);
-
- switch (n)
- {
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "gatewayd has closed down\n"),
- -1);
- /* NOTREACHED */
- case -1:
- if (errno == EWOULDBLOCK)
- // A short-read, we'll come back and finish it up later on!
- return 0;
- else
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "recv"),
- -1);
- /* NOTREACHED */
- default:
- {
- // We got a valid event, so let's process it now! At the
- // moment, we just print out the event contents...
-
- Event *event = (Event *) mb->rd_ptr ();
- this->total_bytes_ += mb->length ();
-
- ACE_DEBUG ((LM_DEBUG,
- "route id = %d, cur len = %d, total len = %d\n",
- event->header_.connection_id_,
- event->header_.len_,
- this->total_bytes_));
- if (Options::instance ()->enabled (Options::VERBOSE))
- ACE_DEBUG ((LM_DEBUG,
- "data_ = %s\n",
- event->data_));
- mb->release ();
- return 0;
- }
- }
-}
-
-// Periodically send events via ACE_Reactor timer mechanism.
-
-int
-Peer_Handler::handle_timeout (const ACE_Time_Value &,
- const void *)
-{
- // Shut down the handler.
- return this->handle_close ();
-}
-
-Peer_Handler::~Peer_Handler (void)
-{
- // Shut down the handler.
- this->handle_close ();
-}
-
-// Handle shutdown of the Peer object.
-
-int
-Peer_Handler::handle_close (ACE_HANDLE,
- ACE_Reactor_Mask)
-{
- if (this->get_handle () != ACE_INVALID_HANDLE)
- {
- ACE_DEBUG ((LM_DEBUG, "shutting down Peer on handle %d\n",
- this->get_handle ()));
-
- ACE_Reactor_Mask mask = ACE_Event_Handler::DONT_CALL | ACE_Event_Handler::READ_MASK;
-
- // Explicitly remove ourselves for ACE_STDIN (the <ACE_Reactor>
- // removes the HANDLE. Note that <ACE_Event_Handler::DONT_CALL>
- // instructs the ACE_Reactor *not* to call <handle_close>, which
- // would otherwise lead to infinite recursion!).
- ACE_Reactor::instance ()->remove_handler
- (ACE_STDIN, mask);
-
- // Deregister this handler with the ACE_Reactor.
- if (ACE_Reactor::instance ()->remove_handler
- (this, mask) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "handle = %d: %p\n",
- this->get_handle (),
- "remove_handler"),
- -1);
- // Close down the peer.
- this->peer ().close ();
- }
- return 0;
-}
-
-int
-Peer_Acceptor::open (u_short port)
-{
- // This object only gets allocated once and is just recycled
- // forever.
- ACE_NEW_RETURN (peer_handler_, Peer_Handler, -1);
-
- this->addr_.set (port);
-
- ACE_DEBUG ((LM_DEBUG,
- "opening acceptor at port %d\n",
- port));
-
- // Call down to the <Acceptor::open> method.
- if (this->inherited::open (this->addr_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
- else if (this->acceptor ().get_local_addr (this->addr_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "get_local_addr"),
- -1);
- else
- ACE_DEBUG ((LM_DEBUG,
- "accepting at port %d\n",
- this->addr_.get_port_number ()));
- return 0;
-}
-
-Peer_Acceptor::Peer_Acceptor (void)
- : peer_handler_ (0)
-{
-}
-
-int
-Peer_Acceptor::close (void)
-{
- // Will trigger a delete.
- if (this->peer_handler_ != 0)
- this->peer_handler_->destroy ();
-
- // Close down the base class.
- return this->inherited::close ();
-}
-
-// Note how this method just passes back the pre-allocated
-// <Peer_Handler> instead of having the <ACE_Acceptor> allocate a new
-// one each time!
-
-int
-Peer_Acceptor::make_svc_handler (Peer_Handler *&sh)
-{
- sh = this->peer_handler_;
- return 0;
-}
-
-int
-Peer_Connector::open_connector (Peer_Handler *&peer_handler,
- u_short port)
-{
- // This object only gets allocated once and is just recycled
- // forever.
- ACE_NEW_RETURN (peer_handler,
- Peer_Handler,
- -1);
-
- ACE_INET_Addr addr (port,
- Options::instance ()->connector_host ());
-
- ACE_DEBUG ((LM_DEBUG,
- "connecting to %s:%d\n",
- addr.get_host_name (),
- addr.get_port_number ()));
-
- if (this->connect (peer_handler, addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "connect"),
- -1);
- else
- ACE_DEBUG ((LM_DEBUG,
- "connected to %s:%d\n",
- addr.get_host_name (),
- addr.get_port_number ()));
- return 0;
-}
-
-int
-Peer_Connector::open (void)
-{
- this->supplier_peer_handler_ = 0;
- this->consumer_peer_handler_ = 0;
-
- if (Options::instance ()->enabled (Options::SUPPLIER_CONNECTOR)
- && this->open_connector (this->supplier_peer_handler_,
- Options::instance ()->supplier_connector_port ()) == -1)
- return -1;
-
- if (Options::instance ()->enabled (Options::CONSUMER_CONNECTOR)
- && this->open_connector (this->consumer_peer_handler_,
- Options::instance ()->consumer_connector_port ()) == -1)
- return -1;
-
- return 0;
-}
-
-int
-Peer_Factory::handle_signal (int signum, siginfo_t *, ucontext_t *)
-{
- ACE_DEBUG ((LM_DEBUG,
- "signal %S occurred\n",
- signum));
-
- if (signum != SIGPIPE)
- // Shut down the main event loop.
- ACE_Reactor::end_event_loop();
-
- return 0;
-}
-
-// Returns information on the currently active service.
-
-int
-Peer_Factory::info (char **strp, size_t length) const
-{
- char buf[BUFSIZ];
- char consumer_addr_str[BUFSIZ];
- char supplier_addr_str[BUFSIZ];
-
- ACE_INET_Addr addr;
-
- if (this->consumer_acceptor_.acceptor ().get_local_addr (addr) == -1)
- return -1;
- else if (addr.addr_to_string (consumer_addr_str,
- sizeof addr) == -1)
- return -1;
- else if (this->supplier_acceptor_.acceptor ().get_local_addr (addr) == -1)
- return -1;
- else if (addr.addr_to_string (supplier_addr_str,
- sizeof addr) == -1)
- return -1;
-
- ACE_OS::sprintf (buf,
- "%s\t C:%s|S:%s/%s %s",
- "peerd",
- consumer_addr_str,
- supplier_addr_str,
- "tcp",
- "# Gateway traffic generator and data sink\n");
-
- if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
- return -1;
- else
- ACE_OS::strncpy (*strp, buf, length);
- return ACE_OS::strlen (buf);
-}
-
-// Hook called by the explicit dynamic linking facility to terminate
-// the peer.
-
-int
-Peer_Factory::fini (void)
-{
- this->consumer_acceptor_.close ();
- this->supplier_acceptor_.close ();
- return 0;
-}
-
-// Hook called by the explicit dynamic linking facility to initialize
-// the peer.
-
-int
-Peer_Factory::init (int argc, char *argv[])
-{
- Options::instance ()->parse_args (argc, argv);
-
- ACE_Sig_Set sig_set;
-
- sig_set.sig_add (SIGINT);
- sig_set.sig_add (SIGQUIT);
- sig_set.sig_add (SIGPIPE);
-
- // Register ourselves to receive signals so we can shut down
- // gracefully.
-
- if (ACE_Reactor::instance ()->register_handler (sig_set,
- this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "register_handler"), -1);
-
- if (Options::instance ()->enabled (Options::SUPPLIER_ACCEPTOR)
- && this->consumer_acceptor_.open
- (Options::instance ()->supplier_acceptor_port ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "Acceptor::open"),
- -1);
- else if (Options::instance ()->enabled (Options::CONSUMER_ACCEPTOR)
- && this->supplier_acceptor_.open
- (Options::instance ()->consumer_acceptor_port ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "Acceptor::open"),
- -1);
- else if (this->connector_.open () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "Connector::open"),
- -1);
- return 0;
-}
-
-// The following is a "Factory" used by the <ACE_Service_Config> and
-// svc.conf file to dynamically initialize the <Peer_Acceptor> and
-// <Peer_Connector>.
-
-ACE_SVC_FACTORY_DEFINE (Peer_Factory)
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Acceptor<Peer_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Connector<Peer_Handler, ACE_SOCK_CONNECTOR>;
-template class ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *>;
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-template class ACE_Svc_Tuple<Peer_Handler>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Acceptor<Peer_Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Connector<Peer_Handler, ACE_SOCK_CONNECTOR>
-#pragma instantiate ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<Peer_Handler> *>
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-#pragma instantiate ACE_Svc_Tuple<Peer_Handler>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/Gateway/Peer/Peer.dsp b/apps/Gateway/Peer/Peer.dsp
deleted file mode 100644
index 9e162c4f1a8..00000000000
--- a/apps/Gateway/Peer/Peer.dsp
+++ /dev/null
@@ -1,64 +0,0 @@
-# Microsoft Developer Studio Project File - Name="Peer" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=Peer - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Peer.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Peer.mak" CFG="Peer - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Peer - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /I "..\Gateway" /D "_WINDOWS" /D "WIN32" /D "_DEBUG" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-# Begin Target
-
-# Name "Peer - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\Options.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Peer.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/apps/Gateway/Peer/Peer.dsw b/apps/Gateway/Peer/Peer.dsw
deleted file mode 100644
index 0cb1de9dcd2..00000000000
--- a/apps/Gateway/Peer/Peer.dsw
+++ /dev/null
@@ -1,44 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 5.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "Peer"=.\Peer.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "peerd"=.\peerd.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name Peer
- End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/Gateway/Peer/Peer.h b/apps/Gateway/Peer/Peer.h
deleted file mode 100644
index 67b9a936dd7..00000000000
--- a/apps/Gateway/Peer/Peer.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Peer.h
-//
-// = DESCRIPTION
-// These classes process Supplier/Consumer events sent from the
-// gateway (gatewayd) to its various peers (peerd). The general
-// collaboration works as follows:
-//
-// 1. <Peer_Acceptor> creates a listener endpoint and waits
-// passively for gatewayd to connect with it.
-//
-// 2. When a gatewayd connects, <Peer_Acceptor> creates an
-// <Peer_Handler> object that sends/receives events from
-// gatewayd on that connection.
-//
-// 3. The <Peer_Handler> waits for gatewayd to inform it of its
-// connection ID, which is prepended to all subsequent outgoing
-// events sent from peerd.
-//
-// 4. Once the connection ID is set, peerd periodically sends events
-// to gatewayd. Peerd also receives and "processes" events
-// forwarded to it from gatewayd. In this program, peerd
-// "processes" the events sent to it by writing them to stdout.
-//
-// Note that in the current peerd implementation, one Peer process
-// cannot serve as both a Consumer and Supplier of Events. This is
-// because the gatewayd establishes a separate connection for
-// Suppliers and Consumers and the peerd only maintains a single
-// <Peer_Handler> object to handle this one connection. Enhancing
-// this implementation to be both a Consumer and Supplier
-// simultaneously is straightforward, however. In addition,
-// multiple peerd processes can already work together to play these
-// different roles.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#if !defined (PEER_H)
-#define PEER_H
-
-#include "ace/Service_Config.h"
-#include "ace/Acceptor.h"
-#include "ace/Connector.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/SOCK_Connector.h"
-#include "Options.h"
-
-ACE_SVC_FACTORY_DECLARE (Peer_Factory)
-
-class ACE_Svc_Export Peer_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
- // = TITLE
- // Handle Peer events arriving from a Gateway.
-public:
- // = Initialization and termination methods.
- Peer_Handler (void);
- // Initialize the peer.
-
- ~Peer_Handler (void);
- // Shutdown the Peer.
-
- virtual int open (void * = 0);
- // Initialize the handler when called by
- // <ACE_Acceptor::handle_input>.
-
- virtual int handle_input (ACE_HANDLE);
- // Receive and process peer events.
-
- virtual int put (ACE_Message_Block *, ACE_Time_Value *tv = 0);
- // Send a event to a gateway (may be queued if necessary due to flow
- // control).
-
- virtual int handle_output (ACE_HANDLE);
- // Finish sending a event when flow control conditions abate.
-
- virtual int handle_timeout (const ACE_Time_Value &,
- const void *arg);
- // Periodically send events via <ACE_Reactor> timer mechanism.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
- // Perform object termination.
-
-protected:
- typedef ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> inherited;
-
- int transmit (ACE_Message_Block *mb,
- size_t n,
- int event_type);
- // Transmit <mb> to the gatewayd.
-
- virtual int recv (ACE_Message_Block *&mb);
- // Receive an Peer event from gatewayd.
-
- virtual int send (ACE_Message_Block *mb);
- // Send an Peer event to gatewayd, using <nonblk_put>.
-
- virtual int nonblk_put (ACE_Message_Block *mb);
- // Perform a non-blocking <put>, which tries to send an event to the
- // gatewayd, but only if it isn't flow controlled.
-
- int subscribe (void);
- // Register Consumer subscriptions with the gateway.
-
- // = Event/state/action handlers.
- int transmit_stdin (void);
- // Receive a event from stdin and send it to the gateway.
-
- int await_connection_id (void);
- // Action that receives the route id.
-
- int await_events (void);
- // Action that receives events.
-
- int (Peer_Handler::*do_action_)(void);
- // Pointer-to-member-function for the current action to run in this
- // state. This points to one of the preceding 3 methods.
-
- CONNECTION_ID connection_id_;
- // Connection ID of the peer, which is obtained from the gatewayd.
-
- ACE_Message_Block *msg_frag_;
- // Keep track of event fragments that arrive in non-blocking recv's
- // from the gatewayd.
-
- size_t total_bytes_;
- // The total number of bytes sent/received to the gatewayd thus far.
-};
-
-class ACE_Svc_Export Peer_Acceptor : public ACE_Acceptor<Peer_Handler, ACE_SOCK_ACCEPTOR>
-{
- // = TITLE
- // Passively accept connections from gatewayd and dynamically
- // create a new <Peer_Handler> object to communicate with the
- // gatewayd.
-public:
- // = Initialization and termination methods.
- Peer_Acceptor (void);
- // Default initialization.
-
- int open (u_short);
- // the <Peer_Acceptor>.
-
- int close (void);
- // Terminate the <Peer_Acceptor>.
-
- virtual int make_svc_handler (Peer_Handler *&);
- // Factory method that creates a <Peer_Handler> just once.
-
-private:
- int open_acceptor (u_short port);
- // Factor out common code for initializing the <Peer_Acceptor>.
-
- Peer_Handler *peer_handler_;
- // Pointer to <Peer_Handler> allocated just once.
-
- ACE_INET_Addr addr_;
- // Our acceptor addr.
-
- typedef ACE_Acceptor<Peer_Handler, ACE_SOCK_ACCEPTOR> inherited;
-};
-
-class ACE_Svc_Export Peer_Connector : public ACE_Connector<Peer_Handler, ACE_SOCK_CONNECTOR>
-{
- // = TITLE
- // Actively establish connections with gatewayd and dynamically
- // create a new <Peer_Handler> object to communicate with the
- // gatewayd.
-public:
- // = Initialization method.
- int open (void);
- // Initialize the <Peer_Connector>.
-
-private:
- int open_connector (Peer_Handler *&ph, u_short port);
- // Factor out common code for initializing the <Peer_Connector>.
-
- Peer_Handler *consumer_peer_handler_;
- // Consumer <Peer_Handler> that is connected to a gatewayd.
-
- Peer_Handler *supplier_peer_handler_;
- // Supplier <Peer_Handler> that is connected to a gatewayd.
-};
-
-class ACE_Svc_Export Peer_Factory : public ACE_Service_Object
-{
- // = TITLE
- // A factory class that actively and/or passively establishes
- // connections with the gatewayd.
-public:
- // = Dynamic initialization and termination hooks from <ACE_Service_Object>.
-
- virtual int init (int argc, char *argv[]);
- // Initialize the acceptor and connector.
-
- virtual int fini (void);
- // Perform termination activities.
-
- virtual int info (char **, size_t) const;
- // Return info about this service.
-
- virtual int handle_signal (int signum, siginfo_t *, ucontext_t *);
- // Handle various signals (e.g., SIGPIPE, SIGINT, and SIGQUIT).
-
-private:
- Peer_Acceptor consumer_acceptor_;
- // Pointer to an instance of our <Peer_Acceptor> that's used to
- // accept connections and create Consumers.
-
- Peer_Acceptor supplier_acceptor_;
- // Pointer to an instance of our <Peer_Acceptor> that's used to
- // accept connections and create Suppliers.
-
- Peer_Connector connector_;
- // An instance of our <Peer_Connector>. Note that one
- // <Peer_Connector> is used to establish <Peer_Handler>s for both
- // Consumers and Suppliers.
-};
-
-#endif /* PEER_H */
diff --git a/apps/Gateway/Peer/Peer4.mak b/apps/Gateway/Peer/Peer4.mak
deleted file mode 100644
index fa0c6203f76..00000000000
--- a/apps/Gateway/Peer/Peer4.mak
+++ /dev/null
@@ -1,594 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-!IF "$(CFG)" == ""
-CFG=Peer - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to Peer - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "peerd - Win32 Debug" && "$(CFG)" != "Peer - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Peer4.mak" CFG="Peer - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "peerd - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "Peer - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "Peer - Win32 Debug"
-
-!IF "$(CFG)" == "peerd - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "peerd\Debug"
-# PROP BASE Intermediate_Dir "peerd\Debug"
-# PROP BASE Target_Dir "peerd"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "peerd_Debug"
-# PROP Target_Dir "peerd"
-OUTDIR=.\.
-INTDIR=.\peerd_Debug
-
-ALL : "Peer - Win32 Debug" "$(OUTDIR)\peerd.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\peerd.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\peerd.exe"
- -@erase "$(OUTDIR)\peerd.ilk"
- -@erase "$(OUTDIR)\peerd.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE"\
- /Fp"$(INTDIR)/peerd.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\peerd_Debug/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/peerd.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 Peer.lib aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-LINK32_FLAGS=Peer.lib aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/peerd.pdb" /debug /machine:I386 /out:"$(OUTDIR)/peerd.exe"
-LINK32_OBJS= \
- "$(INTDIR)\peerd.obj" \
- "$(OUTDIR)\Peer.lib"
-
-"$(OUTDIR)\peerd.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "Peer - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Peer\Debug"
-# PROP BASE Intermediate_Dir "Peer\Debug"
-# PROP BASE Target_Dir "Peer"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "Peer_Debug"
-# PROP Target_Dir "Peer"
-OUTDIR=.\.
-INTDIR=.\Peer_Debug
-
-ALL : "$(OUTDIR)\Peer.dll"
-
-CLEAN :
- -@erase "$(INTDIR)\Options.obj"
- -@erase "$(INTDIR)\Peer.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\Peer.dll"
- -@erase "$(OUTDIR)\Peer.exp"
- -@erase "$(OUTDIR)\Peer.ilk"
- -@erase "$(OUTDIR)\Peer.lib"
- -@erase "$(OUTDIR)\Peer.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Gateway" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Gateway" /D "WIN32" /D\
- "_DEBUG" /D "_WINDOWS" /Fp"$(INTDIR)/Peer.pch" /YX /Fo"$(INTDIR)/"\
- /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\Peer_Debug/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/Peer.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-LINK32_FLAGS=aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:yes\
- /pdb:"$(OUTDIR)/Peer.pdb" /debug /machine:I386 /out:"$(OUTDIR)/Peer.dll"\
- /implib:"$(OUTDIR)/Peer.lib"
-LINK32_OBJS= \
- "$(INTDIR)\Options.obj" \
- "$(INTDIR)\Peer.obj"
-
-"$(OUTDIR)\Peer.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-################################################################################
-# Begin Target
-
-# Name "peerd - Win32 Debug"
-################################################################################
-# Begin Project Dependency
-
-# Project_Dep_Name "Peer"
-
-!IF "$(CFG)" == "peerd - Win32 Debug"
-
-"Peer - Win32 Debug" :
- $(MAKE) /$(MAKEFLAGS) /F ".\Peer4.mak" CFG="Peer - Win32 Debug"
-
-!ENDIF
-
-# End Project Dependency
-################################################################################
-# Begin Source File
-
-SOURCE=.\peerd.cpp
-DEP_CPP_PEERD=\
- "..\..\..\ace\config-win32.h"\
- "..\Gateway\Event.h"\
- ".\Options.h"\
- ".\Peer.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\peerd.obj" : $(SOURCE) $(DEP_CPP_PEERD) "$(INTDIR)"
-
-
-# End Source File
-# End Target
-################################################################################
-# Begin Target
-
-# Name "Peer - Win32 Debug"
-################################################################################
-# Begin Source File
-
-SOURCE=.\Peer.cpp
-DEP_CPP_PEER_=\
- "..\..\..\ace\config-win32.h"\
- "..\Gateway\Event.h"\
- ".\Options.h"\
- ".\Peer.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Peer.obj" : $(SOURCE) $(DEP_CPP_PEER_) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Options.cpp
-DEP_CPP_OPTIO=\
- "..\..\..\ace\config-win32.h"\
- "..\Gateway\Event.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Get_Opt.h"\
- {$(INCLUDE)}"\ace\Get_Opt.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Options.obj" : $(SOURCE) $(DEP_CPP_OPTIO) "$(INTDIR)"
-
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/apps/Gateway/Peer/Peer4.mdp b/apps/Gateway/Peer/Peer4.mdp
deleted file mode 100644
index fb9763b8256..00000000000
--- a/apps/Gateway/Peer/Peer4.mdp
+++ /dev/null
Binary files differ
diff --git a/apps/Gateway/Peer/Peer_Message.h b/apps/Gateway/Peer/Peer_Message.h
deleted file mode 100644
index 67f57f148cb..00000000000
--- a/apps/Gateway/Peer/Peer_Message.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Define the Peer message schema (this may change).
-
-#if !defined (PEER_MESSAGE)
-#define PEER_MESSAGE
-
-// Fixed sized header.
-
-class Peer_Header
-{
-public:
-// Type used to route messages from gatewayd.
- typedef short ROUTING_ID;
-
- enum
- {
- INVALID_ID = -1 // No peer may use this number.
- };
-
- // Source ID.
- ROUTING_ID routing_id_;
-
- // Length of the message in bytes.
- size_t len_;
-};
-
-// Variable-sized message (buf_ may be variable-sized between
-// 0 and MAX_PAYLOAD_SIZE).
-
-class Peer_Message
-{
-public:
- // The maximum size of an Peer message (see Peer protocol specs for exact #).
- enum { MAX_PAYLOAD_SIZE = 1024 };
-
- Peer_Header header_;
-
- // Message payload
- char buf_[MAX_PAYLOAD_SIZE];
-};
-
-#endif /* PEER_MESSAGE */
diff --git a/apps/Gateway/Peer/peerd.cpp b/apps/Gateway/Peer/peerd.cpp
deleted file mode 100644
index 87b26ab5188..00000000000
--- a/apps/Gateway/Peer/peerd.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// peerd.h
-//
-// = DESCRIPTION
-// Driver for the peer daemon (peerd). Note that this is
-// completely generic code due to the Service Configurator
-// framework!
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#include "Peer.h"
-
-int
-main (int argc, char *argv[])
-{
- if (ACE_OS::access (ACE_DEFAULT_SVC_CONF, F_OK) != 0)
- {
- // Use static linking.
- ACE_Service_Object_Ptr sp = ACE_SVC_INVOKE (Peer_Factory);
-
- if (sp->init (argc - 1, argv + 1) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "init"),
- 1);
-
- // Run forever, performing the configured services until we are
- // shut down by a SIGINT/SIGQUIT signal.
-
- ACE_Reactor::run_event_loop ();
-
- // Destructor of <ACE_Service_Object_Ptr> automagically call
- // <fini>.
- }
- else
- {
- if (ACE_Service_Config::open (argc, argv) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- 1);
- else // Use dynamic linking.
-
- // Run forever, performing the configured services until we
- // are shut down by a signal (e.g., SIGINT or SIGQUIT).
-
- ACE_Reactor::run_event_loop ();
- }
- return 0;
-}
diff --git a/apps/Gateway/Peer/peerd.dsp b/apps/Gateway/Peer/peerd.dsp
deleted file mode 100644
index ff9a027ba2b..00000000000
--- a/apps/Gateway/Peer/peerd.dsp
+++ /dev/null
@@ -1,57 +0,0 @@
-# Microsoft Developer Studio Project File - Name="peerd" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=peerd - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "peerd.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "peerd.mak" CFG="peerd - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "peerd - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /D "_DEBUG" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 Peer.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-# Begin Target
-
-# Name "peerd - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\peerd.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/apps/Gateway/Peer/svc.conf b/apps/Gateway/Peer/svc.conf
deleted file mode 100644
index c27eb06cec8..00000000000
--- a/apps/Gateway/Peer/svc.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-#static Svc_Manager "-d -p 291"
-dynamic Peer1 Service_Object * ./Peer:_make_Peer_Factory() active "-a C|S"
diff --git a/apps/Gateway/README b/apps/Gateway/README
deleted file mode 100644
index 23d0336d77b..00000000000
--- a/apps/Gateway/README
+++ /dev/null
@@ -1,140 +0,0 @@
-OVERVIEW
-
-This directory contains source code for an application-level
-Communication Gateway implemented with ACE. This prototype was
-developed in my cs422 OS class at Washington University in 1994. The
-Gateway has recently been updated to illustrate the use of Event
-Channels, which forward events from Suppliers to Consumers in a
-distributed system.
-
-You can get a paper that explains the patterns used in this
-implementation at the following WWW URL:
-
-http://www.cs.wustl.edu/~schmidt/TAPOS-95.ps.gz
-
-----------------------------------------
-
-DIRECTORY STRUCTURE
-
-There are 2 directories:
-
-1. Gateway
-
- This directory contains the source code for the
- application-level Gateway process, gatewayd. The gatewayd
- routes event messages between Peers. By default, the gatewayd
- plays the Connector role and initializes itself by reading the
- proxy_config and consumer_config files:
-
- 1. The proxy_config file establishes the "physical
- configuration" of the Consumer and Supplier proxies. This
- file tells the Gateway what connections to establish with
- particular hosts using particular ports.
-
- 2. The consumer_config file establishes the "logical
- configuration." This file tells the Gateway how to forward
- data coming from Suppliers to the appropriate Consumers.
-
- The application Gateway generally should be started after all
- the Peers described below, though the process should work
- correctly even if it starts first.
-
-2. Peer
-
- This directory contains the source code for the Peer process,
- peerd. There are typically many Peers, which act as suppliers
- and consumers of event messages that are routed through the
- gatewayd.
-
- To do anything interesting you'll need at least two Peers: one
- to supply events and one to consume events. In the
- configuration files, these two types of Peers are designated
- as follows:
-
- 1. Supplier Peers (designated by an 'S' in the Gateway's
- proxy_config configuration file). These Peers are
- "suppliers" of events to the Gateway.
-
- 2. Consumer Peers (designated by an 'C' in the Gateway's
- proxy_config file). These Peers are "consumers" of events
- forwarded by the Gateway. Forwarding is based on the
- settings in the consumer_config configuration file.
-
-----------------------------------------
-
-HOW TO RUN THE TESTS
-
-To run the tests do the following:
-
-1. Compile everything (i.e., first compile the ACE libraries, then
- compile the Gateway and Peer directories).
-
-2. Edit the consumer_config and proxy_config files as discussed
- above to indicate the desired physical and logical mappings
- for Consumers and Suppliers.
-
-3. Start up the Peers (peerd). You can start up as many as you
- like, as per the proxy_config file, but you'll need at least two
- (i.e., one Supplier and Consumer). I typically start up each Peer
- in a different window on a different machine, but you can run them
- on the same machine as long as you pick different port numbers.
- The Peers will print out some diagnostic info and then block
- awaiting connections from the Gateway.
-
- If you want to set the port numbers of the Peers from
- the command-line do the following:
-
- a. Change the svc.conf file in the ./Peer/ directory to
- another name (e.g., foo.conf). This will keep the
- program from starting up with the svc.conf file
- (which dynamically links in the Peers and uses the -a option to
- set the port).
-
- b. Then run the peers in different windows as
-
- # Window 1 (Supplier)
- % peerd -a S:10003
-
- # Window 2 (Consumer)
- % peerd -a C:10004
-
- etc. Naturally, you can also edit the svc.conf file, but that
- may be more of a pain if you've got a network filesystem and
- all your hosts share the same svc.conf file.
-
-4. Start up the Gateway (gatewayd). This will print out a bunch of
- messages as it reads the config files and connects to all the Peers.
- By default, the Gateway is purely reactive, i.e., it handles
- Consumers and Suppliers in the same thread of control. However,
- if you give the '-t OUTPUT_MT' option the Gateway will handle all
- Consumers in separate threads. If you give the '-t INPUT_MT' option
- the Gateway will handle all Suppliers in separate threads. If you
- give the '-t INPUT_MT|OUTPUT_MT' option both Consumers and Suppliers
- will be handled in the separate threads.
-
- Assuming everything works, then all the Peers will be connected.
- If some of the Peers aren't set up correctly, or if they aren't
- started first, then the Gateway will use an exponential backoff
- algorithm to attempt to reestablish those connections.
-
-5. Once the Gateway has connected with all the Peers you can send
- events from Supplier Peers by typing commands in the Peer window.
- This Supplier will be sent to the Gateway, which will forward the
- event to all Consumer Peers that have "subscribed" to receive these
- events.
-
- Note that if you type ^C in a Peer window the Peer will shutdown
- its handlers and exit. The Gateway will detect this and will start
- trying to reestablish the connection using the same exponential
- backoff algorithm it used for the initial connection establishment.
-
-7. When you want to terminate a Gateway, just type ^C or type any
- characters in the ./gatewayd window and the process will shut down
- gracefully.
-
-Please let me know if there are any problems, questions, or
-suggestions for improvement.
-
- Doug
-
- schmidt@cs.wustl.edu
diff --git a/apps/JAWS/ChangeLog b/apps/JAWS/ChangeLog
deleted file mode 100644
index bb339e49f9b..00000000000
--- a/apps/JAWS/ChangeLog
+++ /dev/null
@@ -1,618 +0,0 @@
-Thu Feb 19 22:14:09 1998 Alexander Babu Arulanthu <alex@merengue.cs.wustl.edu>
-
- * server/JAWS_Concurrency.cpp (put): Modified line number 11 to
- get away with a compilation error.
-
-Wed Feb 18 12:31:28 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * server/JAWS_Pipeline.cpp:
- Removed extra definitions for default arguments.
-
-Sun Feb 15 08:05:28 1998 David L. Levine <levine@cs.wustl.edu>
-
- * server/JAWS_Pipeline.h: added missing ; at end of constructor
- declaration.
-
-Wed Jan 7 17:26:43 1998 James C Hu <jxh@cs.wustl.edu>
-
- * server/Pipeline.cpp: Put base class initialization of
- JAWS_Protocol_Filter ahead of data members.
-
-Fri Jan 2 16:28:00 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * clients/Caching/http_handler.cpp:
- * clients/Blobby/Blob.cpp: Added missing explicit template
- instantiations.
-
-Mon Dec 29 20:20:36 1997 James C Hu <jxh@cs.wustl.edu>
-
- * clients/Caching/http_handler.cpp: Idem to previous change.
-
-Mon Dec 29 18:50:02 1997 James C Hu <jxh@cs.wustl.edu>
-
- * server/IO.cpp: Idem to previous change, but fixes to improve
- compatibility and portability to Windows NT.
-
-Thu Dec 18 15:37:36 1997 James C Hu <jxh@cs.wustl.edu>
-
- * server/IO.cpp: Modified to account for changes in ACE_Filecache
- to not map file on NT.
-
-Tue Dec 16 09:29:11 1997 David L. Levine <levine@cs.wustl.edu>
-
- * server/Makefile: expanded rules.bin.GNU, but without
- $(VOBJS), to avoid make warnings.
-
- * client/WebSTONE/src/nsapi-includes/base/systems.h:
- #ifdef linux, not LINUX.
-
-Fri Dec 12 03:06:16 1997 James C Hu <jxh@cs.wustl.edu>
-
- * server/Parse_Headers.cpp: Many things have been touched, but
- only a few things have significantly changed. I originally
- attempted to change the implementation entirely to use
- Hash_Map_Manager instead, but it was getting more complicated
- than I wanted, so I went back to debugging.
-
- - Trailing whitespace has been removed.
- - A couple of debug messages have been added the
- Headers::parse_header_line ().
- - Method declarations had to be changed to account for the
- fact that the Map_Item class (which had previously
- been declared inside of Headers_Map) is now in global
- scope and has been renamed to Headers_Map_Item.
- - The no_value_ data member and the char* cast operator of
- Map_Item have been removed.
- - The assignment operator for Map_Item has been made a bit
- tidier in its memory management (say no to memory
- leaks!).
- - Debugged the Headers_Map data structure. This involved
- the following:
- . Re-implementation of strcasecmp (red-herring).
- . Re-implementation of Headers::compare (). This is
- needed because empty table entries need to compare as
- infinity against real strings, so that real strings get
- inserted correctly.
- . Debugging the Headers_Map::find () method by
- implementing first a linear search, and then my own binary
- search. It turns out the C library ::bsearch() does work,
- but I will leave in my implementation for now, since
- ::bsearch () is not in ACE_OS yet.
- . Re-implementation of Headers::place (). The old one
- was badly written. The new one is more efficient, and
- less error prone. This method turned out to be the main
- problem. It was the reason that binary search was
- previously failing (but linear search worked). The
- reason? It was corrupting memory, believe it or not.
- No longer!
-
- In addition, Headers::place () had a serious bug in which a call
- to ACE_OS::free () was added, but included the ++ operator on
- the pointer from the previous line. Ug.
-
- * server/Parse_Headers.h: See comments for HTTP_Request.cpp.
-
- * server/HTTP_Request.cpp: Removed extraneous whitespace. It's
- not what you think Doug! Just trailing whitespace at the end of
- lines that somehow get added on when people use LoseNT editors.
- Also, changes were made to Parse_Headers which made it necessary
- to explicitly use the value () accessor method when examining
- parsed headers. There use to be a operator char* () method.
-
- * server/HTTP_Response.cpp: See comments for HTTP_Request.cpp.
-
- * server/HTTP_Helpers.cpp: Added a comment to
- HTTP_Helper::fixyear ().
-
-Tue Dec 9 01:19:09 1997 James C Hu <jxh@cs.wustl.edu>
-
- * stress_testing/util.cpp: Off by one errors when parsing a URL.
- Did I write this code? I don't think so. Thanks to Valik
- Solorzano Barboza <valik@geodan.nl> for pointing this out.
-
-Thu Nov 20 00:36:34 1997 James C Hu <jxh@cs.wustl.edu>
-
- * server/Pipeline.h: Added methods and members so that the
- pipeline can be both push and pull driven.
-
- * server/Pipeline.cpp: Made the pipeline a doubly linked list of
- components, so that it can be operated as push-driven or
- pull-driven pipelines.
-
-Wed Nov 19 05:10:38 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * server/HTTP_Handler.h: Added the keyword "virtual" on the open()
- method which is inherited from ACE_Sevice_Handler. Perhaps this
- will fix a bug with BORLANDC reported by Valik Solorzano Barboza
- <valik@xs4all.nl>.
-
-Mon Nov 17 07:34:09 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * server/Parse_Headers.cpp (end_of_line): Replaced a const char *
- with a char * to work with the new ACE_OS::strchr() signature.
- Thanks to James for finding this.
-
-Tue Nov 11 19:52:38 1997 James C Hu <jxh@cs.wustl.edu>
-
- * server/Pipeline.{h,cpp}: The beginning of a new Pipeline
- framework has been added.
-
-Sun Oct 12 16:21:32 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * clients/Caching/Makefile:
- * stress_testing/Makefile:
- There is no need to set LDLIBS to add local object files
- anymore, using FILES is enough.
-
-Fri Oct 10 18:41:47 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * clients/Blobby/Makefile:
- Fixed problem that made compilation fail.
-
-Thu Sep 11 10:40:38 1997 Carlos O'Ryan <coryan@polka.cs.wustl.edu>
-
- * server/HTTP_Request.cpp:
- I checked the use of MAXNAMELEN vs. MAXPATHLEN; all buffers
- intended to keep full filenames should have at least
- MAXPATHLEN+1 chars.
- Only buffers that will keep basenames (without any directories)
- should have MAXNAMELEN+1 bytes.
- I also added a new macro ACE_MAX_FULLY_QUALIFIED_NAME_LEN which
- is the maximum number of characters for a fully qualified
- internet hostname.
- There remain one obscure usage of these macros in ace/Malloc.h
- and Local_Naming_Space_T.{h,cpp}, but a quick fix broke
- something, I will try again soon.
-
-Tue Sep 9 22:08:36 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/HTTP_Server.{cpp,h}: Changes which answer questions
- brought up in design review. Mostly additional comments. Also
- changes to have a task spawn a number of threads rather than
- iterating through calls to the activate method.
-
-Fri Aug 29 11:07:43 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/*.{cpp,h}: Changes to make JAWS comply with ACE
- coding standards. In particular, broke up CGI method in
- HTTP_Request, remove dependency on static object in
- HTTP_Config, and answered all questions from Doug.
-
-Tue Aug 26 21:34:11 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * clients/Caching/ID_Generator.h: Made some minor changes to
- the programming style.
-
-Sun Aug 10 13:44:14 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * server/HTTP_Helpers.cpp (HTTP_date): We can't use
- ACE_Thread_Mutex directly in the code since that breaks
- platforms that lack threads.
-
-Wed Aug 6 16:45:48 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/main.cpp: Added another signal handler so I can kill JAWS
- when purifying.
-
-Mon Aug 4 00:07:24 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * server/main.cpp (main): Service configurator now doesn't return
- -1 when errors occur. Therefore, we check for not success
- instread of fail when opening the service contifurator.
-
-Mon Jul 28 04:54:01 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * server/Parse_Headers.cpp (place): Reformatted the same
- stuff again...
-
-Mon Jul 28 01:48:40 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/README: Updated the README file to reflect new features
- and server flags.
-
- * server/Parse_Headers.cpp (place): Fixed a compile error found by
- David Levine. I don't know why this was compiling for me.
-
-Sun Jul 27 21:56:12 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * server/Parse_Headers.cpp (place): Reformatted a few things
- to make them easier to read.
-
-Fri Jul 25 02:05:20 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/HTTP_Server.cpp: Changes to allow the thread creation
- flags to be specified from the command line. Removed some code
- that was used to track down memory leaks.
-
- * server/HTTP_Helpers.{h,cpp}: Added another method
- HTTP_date (char *), so that a buffer to which the date will be
- written to can be passed into the HTTP_date routine.
-
- * server/HTTP_Response.cpp: Changed some code so that the baseline
- implementation can be created at compile time.
-
- * server/IO.cpp: Changed some code so that the baseline
- implementation can be created at compile time.
-
- * server/main.cpp: Changed the signal handler to wait for threads
- to die. However, this code will remain dormant for now, until
- we design a nice way to shut down a thread pool.
-
- * server/svc.conf: Changes to add some other entries people can
- try.
-
- * server/Makefile: Changes to allow JAWS to be built with static
- linking only, to ease the process of using Purify and Quantify.
- Dynamic linking will be re-configured in the future when we have
- all the memory leaks worked out.
-
-Mon Jul 22 16:55:00 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * Changed references to WRAPPER_ROOT to ACE_ROOT in every
- place except ChangeLog entries.
-
-Mon Jul 21 15:09:03 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/HTTP_Server.{h,cpp}: Got rid of Solaris specific
- debugging code (thr_create, thr_join).
-
-Fri Jul 11 02:15:12 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/HTTP_Response.cpp: Changes so that the HEADER is not
- rebuilt all the time.
-
- * server/IO.cpp (JAWS_Synch_IO::transmit_file): Changed to use
- writev () instead of multiple send ()s.
-
-Thu Jul 10 01:53:48 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * server/HTTP_Helpers.{h,cpp}: Changed so that creating the date
- header is less expensive.
-
- * server/HTTP_Response.cpp: Changes to match above.
-
- * clients/Caching/README: Added to the repository.
-
- * clients/Caching/http_handler.{h,cpp}: Added some comments to the
- code. Also, moved the code to check to see if the file is in
- cache already into the connector, so that a connect is not
- done if the file is cached. This required a filename ()
- accessor method to be added to the handler.
-
-Wed Jul 9 13:08:00 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * clients/Caching/http_handler.cpp (svc): Added code to check to
- see if the file is already cached before trying to cache it.
-
- * clients/Caching/http_client.cpp (main): Added a comment block at
- the top of the file.
-
- * server/HTTP_Handler.cpp and IO.cpp: Changes that were needed
- since JAWS_File is now integrated into ACE (as ACE_Filecache).
-
- * server/HTTP_Server.*: Attempting to track down memory leak.
- This code may be in a state a flux for the next week or so.
-
-Mon Jul 7 23:40:13 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * clients/WebSTONE/src/webclient.c: Removed a bunch of THREAD
- storage class decorators from function makeload() because auto
- variables can't be declared as TSS. Also #ifdef random number
- generation code so it uses rand_r on Solaris() and rand() on NT.
-
- * clients/WebSTONE/src/rexec.c: Modified prototypes for
- PassOutputThread() and PassErrorThread() to avoid warnings from
- MSVC. Still need more refinement on this one. ;(
-
- * clients/WebSTONE/src/webmaster.c: Added prototype for
- HostEntCpy() and a null statement to avoid warning from MSVC.
-
- * clients/WebSTONE/src/gendata/genrand.mak:
- * clients/WebSTONE/src/master/webmaster.mak:
- * clients/WebSTONE/src/client/webclient.mak: Updated file paths
- and dependencies.
-
-Sat Jul 5 14:19:20 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * Renamed the client directory "clients" to reflect the fact that
- we've got multiple client tests now. Also, moved the original
- contents of the client directory into a new clients/Blobby
- directory and added Caching and WebSTONE.
-
- * Moved the ChangeLog from the ./server directory into the ./JAWS
- directory since we want to apply ChangeLog entries to all
- aspects of JAWS, not just the server.
-
- * HTTP_Server.cpp (open): Added THR_DETACHED as a flag to
- activate(). This should prevent a memory leak that was
- occurring since no thread was ever "joining" the threads that
- were spawned.
-
-Thu Jul 3 23:33:47 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * HTTP_Response.cpp (~HTTP_Response): changed delete to delete [],
- removing a major memory leak from JAWS. Still to find is a
- memory lead associated with thread per request. Nanbor's fix is
- about what I did to EMPTY_HEADER too.
-
- * JAWS_File.cpp: David points out I need to add specializations
- for the GNU C++ compiler.
-
-Thu Jul 3 22:38:04 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * HTTP_Response.cpp (build_headers): Added explicit cast for
- EMPTY_HEADER from (const char *) to (char *) in order to make
- MSVC happy. This is probably very badly styled. But
- HTTP_HEADER is only used in places that require (const char *),
- so I think it's safe to do so.
-
-Thu Jul 3 15:34:30 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * HTTP_Response.cpp (HTTP_Response): Moved a call to delete out of
- constructor into the destructor where it belongs.
-
-Thu Jul 3 12:28:44 1997 Sumedh Mungee <sumedh@lindy.cs.wustl.edu>
-
- * Parse_Headers.cpp: Line 137, Changed pt to ptr (it was a typo)
-
-Wed Jul 2 22:33:52 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * JAWS_File.{h,cpp}: Fixed deadlock bug, since RW_MUTEX's are not
- recursive (drat!).
-
-Wed Jul 2 21:03:12 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * Made a major pass through all the code and made the style
- consistent with that found in ACE.
-
-Wed Jul 2 14:33:27 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * JAWS_File.cpp: Added double check locking pattern to the fetch
- routine of the virtual filesystem. This slows things down
- considerably for files which change frequently and for cache
- misses in general, but it should be correct.
-
-Wed Jul 2 14:59:29 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * HTTP_Helpers.cpp (HTTP_decode_string): Added cast from strtol to
- char explicitly to prevent NT from complaining.
-
-Wed Jul 2 14:33:27 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * JAWS_File.{h.cpp}: Modifications to support RW_MUTEX for both
- the virtual filesystem and the low level ACE_File. Next major
- change will be to re-implement the virtual filesystem to use a
- hash table ala ACE_Hash_Map_Manager.
-
-Wed Jul 2 00:23:22 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * HTTP_Server.{h,cpp}: Changed parsing of options to use
- mnemonic names rather than numbers. Added a new thread
- strategy, THROTTLE. This is thread-per-request until some
- maximum number. Unfortunately, it does not become thread-pool
- at this point... yet :-). Added a new option to pass in a
- backlog value.
-
- * svc.conf: adjusted to account for the changed options.
-
- * README: changed to explain new svc.conf options.
-
- * JAWS_File.cpp: Changed it so that when the file is added to the
- cache, it is also acquired. When it is removed from the cache,
- it is released. This is so that the reference count is at least
- one while the file is in the cache. Also, fixed the virtual
- filesystem by giving it a simple replacement strategy if the
- table is full. For now, it will replace the largest file in the
- cache with the request for the current file.
-
-Tue Jul 1 19:13:44 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * JAWS_File.cpp (JAWS_File): Changes the creation method of a
- cached copy from using plain file copy to using mmap and memcpy.
- This avoid the extra complexity caused by FILE_FLAG_OVERLAPPED.
-
-Sat Jun 28 11:55:38 1997 James C Hu <jxh@tango.cs.wustl.edu>
-
- * HTTP_Handler.cpp (open): fixed a typo
-
- * HTTP_Handler.cpp (cgi): fixed a bug, strdup fails on NULL
-
-Sat Jun 28 16:14:38 1997 Sumedh Mungee <sumedh@cumbia.cs.wustl.edu>
-
- * HTTP_Handler.cpp (open): Changed socket send-buffer to 64k
-
-Wed Jun 25 01:11:50 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * JAWS_File.cpp: Removed initialization of vfs_ (see below) and
- changed all references of vfs_ to
- JAWS_Virtual_Filesystem::instance (). Thanks to Detlef Becker
- <detlef.becker@med.siemens.de> for pointing this out.
- (init): Added initialization of reference_count_ to 0.
-
- * JAWS_File.h: Removed private member JAWS_Virtual_Filesystem vfs_
- since JAWS_Virtual_Filesystem is a singleton already. Caching
- it doesn't seem to win much and depends on the order of static
- variables initialization, which is non-portable.
-
-Fri Jun 13 02:42:39 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * jaws.{mdp,mak}: Updated to incoporate latest changes.
-
-Thu Jun 5 14:13:22 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * HTTP_Server.cpp: Added more informative comments to the
- asynch_thread_pool() method due to comments posed by Mehul
- (MehulM@spa-marketing.com).
-
-Wed Jun 4 23:00:47 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * JAWS_File.cpp (JAWS_File): Fixed a bug where JAWS_File wanted
- the file to have write permissions before openning it. This is
- now only true if the file is to be written to.
-
-Wed Jun 4 22:30:41 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * main.cpp (main): Changed SIGCLD to SIGCHLD for better
- portability.
-
- * IO.cpp (transmit_file): The third argument passed
- ACE_Asynch_Transmit_File::Header_And_Trailer() should be an
- address (&).
-
-Mon Jun 2 16:35:18 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * HTTP_Helpers.cpp: Serious bug in base64 decoder routine
- squashed. Didn't initialize an array with 0's. The original
- source had them declared static. Also, changed sizeof alphabet_
- to strlen (alphabet_), because original code had alphabet_ as an
- array, but my translation has alphabet_ as a pointer.
-
- * HTTP_Response.cpp: Added some code to check to see if the
- decoder returns 0. If it does, flag this as a failed
- authorization attempt.
-
- * HTTP_Handler.cpp: Added a "\r\n" to the confirmation message in
- receive_file_complete () method.
-
- * HTTP_Request.cpp: In parse_request_line (), created conditional
- expressions in the debugging print statement so that a null
- string will not cause the server to crash.
-
- * HTTP_Response.cpp:
- (1) cgi_resposnse () no longer has to wait for the process to
- die. The fix to ACE_Process of closing down child handles was
- enough to get the connection to die on its own.
- (2) Mike (mrm@cisco.com) pointed out that the output for CGI
- responses was not create. The fix was to output a small header
- before execing the CGI program.
-
- * test.cgi: a sample cgi program to use when testing the JAWS
- server.
-
-Sat May 31 13:34:14 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * *.h, *.cpp: Changed include lines from "apps/JAWS/server/..." to
- "..." to avoid dependencies on the WRAPPER_ROOT tree.
-
- * jaws.auth: This file is added to be a sample authorization
- file. This is the file which JAWS is currently hardcoded to use
- to verify authenticated PUT requests.
-
- * HTTP_Response.cpp: Added code to normal_response () and to
- error_response () to better handle authentication. Now, all PUT
- methods are required to be authenticated. The strategy now is
- very simple, there is only one authorization file and only one
- realm of authorization. This will be easy to bring up to spec
- later, though.
-
- * HTTP_Helpers.h: Added alphabet_ data member for the
- decode/encode base64 methods.
-
- * HTTP_Helpers.cpp: Added HTTP_decode_base64 and
- HTTP_encode_base64 methods. HTTP_encode_base64 is currently not
- used, but HTTP_decode_base64 is being used for Basic
- authentication.
-
- * *.h, *.cpp: Changed include lines from "JAWS/server/..." to
- "apps/JAWS/server/..." to fix an error reported by Rob Payne
- <repayne@jeeves.net>. This was really due to a bug in the
- platform_macros.GNU file not adding INCLDIRS to the CCFLAGS
- during compilation, but in the case other platforms have the
- same problem, changing the source is a better fix.
-
-Fri May 30 23:19:03 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * README: updated to better reflect the status of JAWS.
-
- * main.cpp (handler): Added a signal handler for SIGINT, and also
- set SIG_IGN for SIGCLD. The first handler calls exit (0) if
- SIGINT is received, so that static destructors are called. The
- second is so that zombies are not formed.
-
- * HTTP_Response.cpp (cgi_response): Debugging. (1) The CGI
- program spewed output on the server side instead of the client.
- (2) The CGI program had environment variable being set even
- though there was no associated value. (3) The client connection
- was not being closed after the CGI program executed. Problem
- (1) was fixed by using set_handles () in cgi_options. Problem
- (2) was fixed by testing to see if the header had an associated
- value before assigning it to the environment. Problem (3) was
- fixed by sending an empty confirmation message after waiting for
- the CGI process to exit.
-
- * HTTP_Request.cpp (cgi): Debugging. It was not looking for a
- ".cgi" extension during the stage of determining if a URI is a
- CGI script. This will later be fixed when a full mime-type
- facility is implemented.
-
-Fri May 23 00:45:24 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * JAWS/server: Debugged HTTP/0.9 GET requests, and HTTP/1.0 PUT
- requests. Both work now, with minor problems: e.g. the
- Content-type header doesn't really work (always sends text/html
- as the content type). What it should do is see if the request
- included a content type header, and use it, otherwise, resort to
- some file suffix and mimetype matching algorithm.
-
- * Parse_Headers.h (complete_header_line): Added comments
- explaining the new return values of -1, 0 and 1 (see comments
- for Parse_Headers.cpp below).
-
- * Parse_Headers.cpp (complete_header_line): modified so that it
- returns three values instead of two. -1 means that an end of
- line was encountered, but nothing after it yet to verify if it
- is really a complete header line. 0 means the read cut off in
- the middle of a line (no end of line character found). 1 means
- the line is verified to be a complete header line.
-
- * HTTP_Request.cpp (parse_request): Changed the test so that an
- HTTP/0.9 request would be sent immediately after being issued.
- This involved changes to Parse_Headers.
-
- * JAWS_File.cpp (acquire): Changes involved adding some debugging
- statements to understand why PUT was not working. Discovered a
- bug in how ACE_Mem_Map was being used.
-
- * HTTP_Request.cpp (content_length): Changed to extract value from
- the headers, if available.
-
-Thu May 22 16:22:03 1997 James C. Hu <jxh@pride.cs.wustl.edu>
-
- * HTTP_Request.cpp (cgi_env): Added a cast so that a warning
- generated by SGI C++ compiler goes away.
-
- * Makefile: Reordered the way the files are compiled/linked so
- that useless warnings about object files not resolving any
- symbols go away.
-
-Wed May 21 15:33:33 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * JAWS_File.{h,cpp}: Added some comments. Will add a copy ()
- method soon, after I move my workspace over to lambada.
-
- * JAWS_Tilde.{h,cpp}: This class is being implemented but has not
- been added to the repository yet, since JAWS as yet does not use
- it, and it is still being developed. This will be a cache of
- the expansions from ~foo to the home directory of foo.
-
-Tue May 20 22:49:24 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * JAWS_File.{h,cpp}: New class created to replace the old kludgy
- VFS thingy. This new cached virtual filesystem is way cool: a
- file which is being retrieved can be simultaneously replaced
- without causing either reader or writer to wait. Reference
- counts are maintained now, which was missing in VFS. Also,
- there is no longer a dependency on the JXH_List template now,
- which is a plus.
-
- * IO.cpp: Changes to adapt to the new virtual filesystem. The
- changes all involved simplifications to the programming
- interface.
-
- * HTTP_Handler.cpp: Changes required to deal with the more
- generic error responses returned from the JAWS_File/JAWS_IO
- interface. This generality will make it easier to adapt
- JAWS_File and JAWS_IO into ACE.
-
- * test_JAWS_File.cpp: A test program written to see if the new
- virtual filesystem works the way I expect it to.
diff --git a/apps/JAWS/Makefile b/apps/JAWS/Makefile
deleted file mode 100644
index 950d3cd73b3..00000000000
--- a/apps/JAWS/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for JAWS
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = server \
- clients
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
-
diff --git a/apps/JAWS/PROTOTYPE/HTTP_10.cpp b/apps/JAWS/PROTOTYPE/HTTP_10.cpp
deleted file mode 100644
index 061a6406ac6..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTP_10.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-// $Id$
-
-#include "HTTP_10.h"
-
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/Policy.h"
-
-JAWS_HTTP_10_Read_Task::JAWS_HTTP_10_Read_Task (void)
-{
-}
-
-JAWS_HTTP_10_Read_Task::~JAWS_HTTP_10_Read_Task (void)
-{
-}
-
-int
-JAWS_HTTP_10_Read_Task::handle_put (JAWS_Data_Block *data, ACE_Time_Value *)
-{
- JAWS_Dispatch_Policy *policy = data->policy ();
- JAWS_IO_Handler *handler = data->io_handler ();
- // JAWS_Pipeline_Handler *task = data->task ();
-
- JAWS_IO *io = policy->io ();
-
- ACE_Message_Block mb (data);
-
- io->read (handler, mb, data->size ());
- if (handler->status () == JAWS_IO_Handler::READ_OK)
- {
- return this->put_next (&mb);
- }
-
- return 1;
-}
-
-JAWS_HTTP_10_Write_Task::JAWS_HTTP_10_Write_Task (void)
-{
-}
-
-JAWS_HTTP_10_Write_Task::~JAWS_HTTP_10_Write_Task (void)
-{
-}
-
-int
-JAWS_HTTP_10_Write_Task::handle_put (JAWS_Data_Block *data, ACE_Time_Value *)
-{
- JAWS_Dispatch_Policy *policy = data->policy ();
- JAWS_IO_Handler *handler = data->io_handler ();
- // JAWS_Pipeline_Handler *task = data->task ();
-
- JAWS_IO *io = policy->io ();
-
- char message[] = "<html><h1>This is a test</h1></html>\n";
-
- ACE_Message_Block mb (data);
-
- io->send_error_message (handler, message, sizeof (message));
- if (handler->status () == JAWS_IO_Handler::WRITE_OK)
- {
- return 0;
- }
-
- return -1;
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTP_10.h b/apps/JAWS/PROTOTYPE/HTTP_10.h
deleted file mode 100644
index f2bfb301821..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTP_10.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#if !defined (JAWS_HTTP_10_H)
-#define JAWS_HTTP_10_H
-
-#include "JAWS/Data_Block.h"
-
-class JAWS_HTTP_10_Read_Task : public JAWS_Pipeline_Handler
-{
-public:
- JAWS_HTTP_10_Read_Task (void);
- virtual ~JAWS_HTTP_10_Read_Task (void);
-
- virtual int handle_put (JAWS_Data_Block *data, ACE_Time_Value *tv);
-
-private:
-};
-
-class JAWS_HTTP_10_Write_Task : public JAWS_Pipeline_Handler
-{
-public:
- JAWS_HTTP_10_Write_Task (void);
- virtual ~JAWS_HTTP_10_Write_Task (void);
-
- virtual int handle_put (JAWS_Data_Block *data, ACE_Time_Value *tv);
-
-private:
-};
-
-#endif /* !defined (JAWS_HTTP_10_H) */
diff --git a/apps/JAWS/PROTOTYPE/HTTP_Policy.cpp b/apps/JAWS/PROTOTYPE/HTTP_Policy.cpp
deleted file mode 100644
index 9b8d3dd36a6..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTP_Policy.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// $Id$
-
-#include "HTTP_Policy.h"
-
-HTTP_Policy::HTTP_Policy (JAWS_Concurrency *concurrency)
- : concurrency_ (concurrency)
-{
-}
-
-JAWS_Concurrency_Base *
-HTTP_Policy update (void *)
-{
- /* for now, we always return the same concurrency strategy */
- returh this->concurrency_;
-}
diff --git a/apps/JAWS/PROTOTYPE/HTTP_Policy.h b/apps/JAWS/PROTOTYPE/HTTP_Policy.h
deleted file mode 100644
index 38e4314b272..00000000000
--- a/apps/JAWS/PROTOTYPE/HTTP_Policy.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#if !defined (HTTP_POLICY_H)
-#define HTTP_POLICY_H
-
-#include "JAWS/Concurrency.h"
-
-/* create a policy */
-class HTTP_Policy : public JAWS_Dispatch_Policy
-{
-public:
- HTTP_Policy (JAWS_Concurrency_Base *concurrency);
- virtual JAWS_Concurrency_Base * update (void *state = 0);
-
-private:
- JAWS_Concurrency_Base *concurrency_;
-};
-
-
-#endif /* !defined (HTTP_POLICY_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Concurrency.cpp b/apps/JAWS/PROTOTYPE/JAWS/Concurrency.cpp
deleted file mode 100644
index c0108703b21..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Concurrency.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-// $Id$
-
-#include "JAWS/Concurrency.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/Pipeline.h"
-#include "JAWS/Pipeline_Tasks.h"
-#include "JAWS/Policy.h"
-#include "JAWS/Data_Block.h"
-
-JAWS_Concurrency_Base::JAWS_Concurrency_Base (void)
-{
-}
-
-int
-JAWS_Concurrency_Base::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- return this->putq (mb, tv);
-}
-
-int
-JAWS_Concurrency_Base::svc (void)
-{
- int result = 0;
-
- for (;;)
- {
- ACE_Message_Block *mb; // The message queue element
-
- JAWS_Data_Block *db; // Contains the task list
- JAWS_Dispatch_Policy *policy; // Contains task policies
- JAWS_IO_Handler *handler; // Keeps the state of the task
- JAWS_Pipeline_Handler *task; // The task itself
-
- // At this point we could set a timeout value so that the
- // threading strategy can delete a thread if there is nothing to
- // do. Carefully think how to implement it so you don't leave
- // yourself with 0 threads.
- result = this->getq (mb);
-
- // Use a NULL message block to indicate that the thread should shut
- // itself down
- if (result == -1 || mb == 0)
- break;
-
- db = ACE_dynamic_cast (JAWS_Data_Block *, mb->data_block ());
- policy = db->policy ();
-
- // Each time we iterate, we create a handler to maintain
- // our state for us.
- handler = policy->ioh_factory ()->create_io_handler ();
- if (handler == 0)
- {
- ACE_DEBUG ((LM_DEBUG, "JAWS_Server::open, can't create handler\n"));
- return -1;
- }
-
- // Set the initial task in the handler
- handler->task (db->task ());
-
- // Thread specific message block
- JAWS_Data_Block ts_db;
- ACE_Message_Block ts_mb (&ts_db);
-
- ts_db.task (db->task ());
- ts_db.policy (db->policy ());
- ts_db.io_handler (handler);
-
- do
- {
- // handler maintains the state of the protocol
- task = handler->task ();
-
- // Use a NULL task to make the thread recycle now
- if (task == 0)
- break;
-
- // the task should set the handler to the appropriate next step
- result = task->put (&ts_mb);
-
- if (result == 1)
- {
- ACE_TRACE (("%p\n", "JAWS_Concurrency_Base::svc, waiting"));
- // need to wait for an asynchronous event
- // I don't know how to do this yet, so pretend it's
- // an error
-
- // handler = wait for completion ();
- // db->io_handler (handler);
- // result = 0;
- result = -1;
- }
-
- if (result == -1)
- {
- // definately something wrong.
- ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_Concurrency_Base::svc"));
- break;
- }
-
- }
- while (result == 0);
-
- policy->ioh_factory ()->destroy_io_handler (handler);
- }
-
- return 0;
-}
-
-JAWS_Dispatcher::JAWS_Dispatcher (void)
- : policy_(0)
-{
-}
-
-int
-JAWS_Dispatcher::dispatch (ACE_Message_Block *mb)
-{
- return this->policy ()->concurrency ()->put (mb);
-}
-
-JAWS_Dispatch_Policy *
-JAWS_Dispatcher::policy (void)
-{
- return this->policy_;
-}
-
-JAWS_Dispatch_Policy *
-JAWS_Dispatcher::policy (JAWS_Dispatch_Policy *p)
-{
- this->policy_ = p;
- return this->policy_;
-}
-
-int
-JAWS_Thread_Pool_Task::open (long flags, int nthreads, int maxthreads)
-{
- this->nthreads_ = nthreads;
- this->maxthreads_ = maxthreads;
-
- if (this->activate (flags, nthreads) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Thread_Pool_Task::activate"),
- -1);
-
- return 0;
-}
-
-int
-JAWS_Thread_Per_Task::open (long flags, int maxthreads)
-{
- this->flags_ = flags;
- this->maxthreads_ = maxthreads;
- return 0;
-}
-
-int
-JAWS_Thread_Per_Task::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- const int force_active = 1;
- const int nthreads = 1;
-
- if (this->activate (this->flags_, nthreads, force_active) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Thread_Pool_Task::activate"),
- -1);
-
- this->putq (mb, tv);
-
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton<JAWS_Dispatcher, ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_Thread_Pool_Task, ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_Thread_Per_Task, ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton<JAWS_Dispatcher, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Singleton<JAWS_Thread_Pool_Task, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Singleton<JAWS_Thread_Per_Task, ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Concurrency.h b/apps/JAWS/PROTOTYPE/JAWS/Concurrency.h
deleted file mode 100644
index 16642bd96e7..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Concurrency.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#if !defined (JAWS_CONCURRENCY_H)
-#define JAWS_CONCURRENCY_H
-
-#include "ace/Singleton.h"
-#include "ace/Synch.h"
-#include "ace/Task.h"
-
-#include "JAWS/IO.h"
-
-class JAWS_Dispatch_Policy;
-
-class JAWS_Concurrency_Base : public ACE_Task<ACE_MT_SYNCH>
- // = TITLE
- // Base class for different concurrency models
- //
- // = DESCRIPTION
- // Provides a default implementaion of the virtual put() method
- // which calls putq(), but can be overloaded to do something
- // synchronously, such as call put_next().
-
-{
-public:
- JAWS_Concurrency_Base (void);
-
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- virtual int svc (void);
-};
-
-class JAWS_Dispatcher
- // = TITLE
- // The class that is responsible to delivering events to the
- // appropriate concurrency mechanism.
- //
- // = DESCRIPTION
- // JAWS_IO_Handler calls into the dispatcher so that the completed
- // IO can find a thread to take care of it.
-{
-public:
- JAWS_Dispatcher (void);
-
- int dispatch (ACE_Message_Block *mb);
- JAWS_Dispatch_Policy *policy (void);
- JAWS_Dispatch_Policy *policy (JAWS_Dispatch_Policy *p);
-
-private:
- JAWS_Dispatch_Policy *policy_;
-};
-
-class JAWS_Thread_Pool_Task : public JAWS_Concurrency_Base
- // = TITLE
- // Used to implement Thread Pool Concurrency Strategy
- //
- // = DESCRIPTION
- // This task is created to hold a pool of threads that receive
- // requests through the message queue.
-{
-public:
- virtual int open (long flags = THR_NEW_LWP,
- int nthreads = 5, int maxthreads = 20);
- // Initiate the thread_pool task
-
-private:
- int nthreads_;
- int maxthreads_;
-};
-
-class JAWS_Thread_Per_Task : public JAWS_Concurrency_Base
- // = TITLE
- // Used to implement Thread Per Request Concurrency Strategy
- //
- // = DESCRIPTION
- // As each new message arrives from the queue, a new thread is
- // spawned to handle it. This is done by overloading put to call
- // activate.
-{
-public:
- virtual int open (long flags = THR_NEW_LWP, int maxthreads = 20);
- // Initiate the thread_per task
-
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
-
-private:
- long flags_;
- int maxthreads_;
-};
-
-typedef ACE_Singleton<JAWS_Dispatcher, ACE_SYNCH_MUTEX>
- JAWS_Dispatcher_Singleton;
-
-typedef ACE_Singleton<JAWS_Thread_Pool_Task, ACE_SYNCH_MUTEX>
- JAWS_Thread_Pool_Singleton;
-
-typedef ACE_Singleton<JAWS_Thread_Per_Task, ACE_SYNCH_MUTEX>
- JAWS_Thread_Per_Singleton;
-
-#endif /* !defined (JAWS_CONCURRENCY_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Data_Block.cpp b/apps/JAWS/PROTOTYPE/JAWS/Data_Block.cpp
deleted file mode 100644
index 47c2c7e3316..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Data_Block.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-// $Id$
-
-#include "JAWS/Data_Block.h"
-#include "JAWS/Policy.h"
-
-JAWS_Pipeline_Handler *
-JAWS_Data_Block::task (void)
-{
- return this->task_;
-}
-
-JAWS_IO_Handler *
-JAWS_Data_Block::io_handler (void)
-{
- return this->io_handler_;
-}
-
-JAWS_Dispatch_Policy *
-JAWS_Data_Block::policy (void)
-{
- return this->policy_;
-}
-
-void
-JAWS_Data_Block::task (JAWS_Pipeline_Handler *taskp)
-{
- this->task_ = taskp;
-}
-
-void
-JAWS_Data_Block::io_handler (JAWS_IO_Handler *handlerp)
-{
- this->io_handler_ = handlerp;
-}
-
-void
-JAWS_Data_Block::policy (JAWS_Dispatch_Policy *policyp)
-{
- this->policy_ = policyp;
-}
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Data_Block.h b/apps/JAWS/PROTOTYPE/JAWS/Data_Block.h
deleted file mode 100644
index e1641f88751..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Data_Block.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#if !defined (JAWS_DATA_BLOCK_H)
-#define JAWS_DATA_BLOCK_H
-
-#include "ace/Singleton.h"
-#include "JAWS/Pipeline.h"
-
-class JAWS_IO_Handler;
-class JAWS_Dispatch_Policy;
-class JAWS_Data_Block;
-class JAWS_Pipeline_Handler;
-
-class JAWS_Data_Block : public ACE_Data_Block
-// = TITLE
-// Defines the communication unit between pipeline components
-{
-public:
- JAWS_Pipeline_Handler *task (void);
- JAWS_IO_Handler *io_handler (void);
- JAWS_Dispatch_Policy *policy (void);
-
- void task (JAWS_Pipeline_Handler *taskp);
- void io_handler (JAWS_IO_Handler * handlerp);
- void policy (JAWS_Dispatch_Policy * policyp);
-
-private:
- JAWS_IO_Handler *io_handler_;
- JAWS_Dispatch_Policy *policy_;
- JAWS_Pipeline_Handler *task_;
-};
-
-#endif /* !defined (JAWS_DATA_BLOCK_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/IO.cpp b/apps/JAWS/PROTOTYPE/JAWS/IO.cpp
deleted file mode 100644
index b499e459448..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/IO.cpp
+++ /dev/null
@@ -1,450 +0,0 @@
-// $Id$
-
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/IO_Acceptor.h"
-
-// #include "HTTP_Helpers.h"
-
-#include "ace/Message_Block.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Filecache.h"
-
-JAWS_IO::JAWS_IO (void)
- : handle_ (ACE_INVALID_HANDLE),
- handler_ (0),
- inet_addr_ (0),
- acceptor_ (0)
-{
-}
-
-JAWS_IO::~JAWS_IO (void)
-{
-}
-
-#if 0
-ACE_HANDLE
-JAWS_IO::handle (void)
-{
- return this->handle_;
-}
-
-void
-JAWS_IO::handle (ACE_HANDLE handle)
-{
- this->handle_ = handle;
-}
-
-void
-JAWS_IO::handler (JAWS_IO_Handler *handler)
-{
- this->handler_ = handler;
-}
-
-void
-JAWS_IO::acceptor (JAWS_IO_Acceptor *acceptor)
-{
- this->acceptor_ = acceptor;
-}
-#endif /* 0 */
-
-JAWS_Synch_IO::JAWS_Synch_IO (void)
-{
- this->acceptor_ = JAWS_IO_Synch_Acceptor_Singleton::instance ();
-}
-
-JAWS_Synch_IO::~JAWS_Synch_IO (void)
-{
- ACE_OS::closesocket (this->handle_);
-}
-
-void
-JAWS_Synch_IO::accept (JAWS_IO_Handler *ioh)
-{
- ACE_SOCK_Stream new_stream;
- if (this->acceptor_->accept (new_stream) == -1)
- ioh->accept_error ();
- else
- ioh->accept_complete (new_stream.get_handle ());
-}
-
-void
-JAWS_Synch_IO::read (JAWS_IO_Handler *ioh,
- ACE_Message_Block &mb,
- int size)
-{
- ACE_SOCK_Stream stream;
-
- stream.set_handle (ioh->handle ());
- int result = stream.recv (mb.wr_ptr (), size);
-
- if (result <= 0)
- ioh->read_error ();
- else
- {
- mb.wr_ptr (result);
- ioh->read_complete (mb);
- }
-}
-
-void
-JAWS_Synch_IO::receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length)
-{
- ACE_Filecache_Handle handle (filename, entire_length);
-
- int result = handle.error ();
-
- if (result == ACE_Filecache_Handle::SUCCESS)
- {
- ACE_SOCK_Stream stream;
- stream.set_handle (ioh->handle ());
-
- int bytes_to_memcpy = ACE_MIN (entire_length, initial_data_length);
- ACE_OS::memcpy (handle.address (), initial_data, bytes_to_memcpy);
-
- int bytes_to_read = entire_length - bytes_to_memcpy;
-
- int bytes = stream.recv_n ((char *)
- handle.address () + initial_data_length,
- bytes_to_read);
- if (bytes == bytes_to_read)
- ioh->receive_file_complete ();
- else
- result = -1;
- }
-
- if (result != ACE_Filecache_Handle::SUCCESS)
- ioh->receive_file_error (result);
-}
-
-void
-JAWS_Synch_IO::transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size)
-{
- ACE_Filecache_Handle handle (filename);
-
- int result = handle.error ();
-
- if (result == ACE_Filecache_Handle::SUCCESS)
- {
-#if defined (ACE_JAWS_BASELINE)
- ACE_SOCK_Stream stream;
- stream.set_handle (ioh->handle ());
-
- if ((stream.send_n (header, header_size) == header_size)
- && ((u_long) stream.send_n (handle.address (), handle.size ())
- == handle.size ())
- && (stream.send_n (trailer, trailer_size) == trailer_size))
- this->handler_->transmit_file_complete ();
- else
- result = -1;
-#else
- // Attempting to use writev
- // Is this faster?
- struct iovec iov[3];
- int iovcnt = 0;
- if (header_size > 0)
- {
- iov[iovcnt].iov_base = (char *) header;
- iov[iovcnt].iov_len = header_size;
- iovcnt++;
- }
- if (handle.size () > 0)
- {
- iov[iovcnt].iov_base = (char *) handle.address ();
- iov[iovcnt].iov_len = handle.size ();
- iovcnt++;
- }
- if (trailer_size > 0)
- {
- iov[iovcnt].iov_base = (char *) trailer;
- iov[iovcnt].iov_len = trailer_size;
- iovcnt++;
- }
- if (ACE_OS::writev (ioh->handle (), iov, iovcnt) < 0)
- result = -1;
- else
- ioh->transmit_file_complete ();
-#endif /* ACE_JAWS_BASELINE */
- }
-
- if (result != ACE_Filecache_Handle::SUCCESS)
- ioh->transmit_file_error (result);
-}
-
-void
-JAWS_Synch_IO::send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- int length)
-{
- this->send_message (ioh, buffer, length);
- ioh->confirmation_message_complete ();
-}
-
-void
-JAWS_Synch_IO::send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- int length)
-{
- this->send_message (ioh, buffer, length);
- ioh->error_message_complete ();
-}
-
-void
-JAWS_Synch_IO::send_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- int length)
-{
- ACE_SOCK_Stream stream;
- stream.set_handle (ioh->handle ());
- stream.send_n (buffer, length);
-}
-
-// This only works on Win32
-#if defined (ACE_WIN32)
-
-JAWS_Asynch_IO::JAWS_Asynch_IO (void)
-{
-}
-
-JAWS_Asynch_IO::~JAWS_Asynch_IO (void)
-{
- ACE_OS::closesocket (this->handle_);
-}
-
-void
-JAWS_Asynch_IO::read (ACE_Message_Block& mb,
- int size)
-{
- ACE_Asynch_Read_Stream ar;
-
- if (ar.open (*this, this->handle_) == -1
- || ar.read (mb, size) == -1)
- this->handler_->read_error ();
-}
-
-// This method will be called when an asynchronous read completes on a
-// stream.
-
-void
-JAWS_Asynch_IO::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
-{
- // This callback is for this->receive_file()
- if (result.act () != 0)
- {
- int code = 0;
- if (result.success () && result.bytes_transferred () != 0)
- {
- if (result.message_block ().length () == result.message_block ().size ())
- code = ACE_Filecache_Handle::SUCCESS;
- else
- {
- ACE_Asynch_Read_Stream ar;
- if (ar.open (*this, this->handle_) == -1
- || ar.read (result.message_block (),
- result.message_block ().size () - result.message_block ().length (),
- result.act ()) == -1)
- code = -1;
- else
- return;
- }
- }
- else
- code = -1;
-
- if (code == ACE_Filecache_Handle::SUCCESS)
- this->handler_->receive_file_complete ();
- else
- this->handler_->receive_file_error (code);
-
- delete &result.message_block ();
- delete (ACE_Filecache_Handle *) result.act ();
- }
- else
- {
- // This callback is for this->read()
- if (result.success ()
- && result.bytes_transferred () != 0)
- this->handler_->read_complete (result.message_block ());
- else
- this->handler_->read_error ();
- }
-}
-
-void
-JAWS_Asynch_IO::receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length)
-{
- ACE_Message_Block *mb = 0;
- ACE_Filecache_Handle *handle;
-
- ACE_NEW (handle, ACE_Filecache_Handle (filename, entire_length, NOMAP));
-
- int result = handle->error ();
-
- if (result == ACE_Filecache_Handle::SUCCESS)
- {
- ACE_OS::memcpy (handle->address (),
- initial_data,
- initial_data_length);
-
- int bytes_to_read = entire_length - initial_data_length;
-
- ACE_NEW (mb, ACE_Message_Block ((char *)handle->address ()
- + initial_data_length, bytes_to_read));
-
- if (mb == 0)
- {
- errno = ENOMEM;
- result = -1;
- }
- else
- {
- ACE_Asynch_Read_Stream ar;
-
- if (ar.open (*this, this->handle_) == -1
- || ar.read (*mb, mb->size () - mb->length (), handle) == -1)
- result = -1;
- }
- }
-
- if (result != ACE_Filecache_Handle::SUCCESS)
- {
- this->handler_->receive_file_error (result);
- delete mb;
- delete handle;
- }
-}
-
-void
-JAWS_Asynch_IO::transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size)
-{
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer = 0;
- ACE_Filecache_Handle *handle = new ACE_Filecache_Handle (filename, NOMAP);
-
- int result = handle->error ();
-
- if (result == ACE_Filecache_Handle::SUCCESS)
- {
- ACE_Message_Block header_mb (header, header_size);
- ACE_Message_Block trailer_mb (trailer, trailer_size);
-
- header_and_trailer = new ACE_Asynch_Transmit_File::Header_And_Trailer
- (&header_mb, header_size, &trailer_mb, trailer_size);
-
- ACE_Asynch_Transmit_File tf;
-
- if (tf.open (*this, this->handle_) == -1
- || tf.transmit_file (handle->handle (), // file handle
- header_and_trailer, // header and trailer data
- 0, // bytes_to_write
- 0, // offset
- 0, // offset_high
- 0, // bytes_per_send
- 0, // flags
- handle // act
- ) == -1)
- result = -1;
- }
-
- if (result != ACE_Filecache_Handle::SUCCESS)
- {
- this->handler_->transmit_file_error (result);
- delete header_and_trailer;
- delete handle;
- }
-}
-
-
-// This method will be called when an asynchronous transmit file completes.
-void
-JAWS_Asynch_IO::handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result)
-{
- if (result.success ())
- this->handler_->transmit_file_complete ();
- else
- this->handler_->transmit_file_error (-1);
-
- delete result.header_and_trailer ();
- delete (ACE_Filecache_Handle *) result.act ();
-}
-
-void
-JAWS_Asynch_IO::send_confirmation_message (const char *buffer,
- int length)
-{
- this->send_message (buffer, length, CONFORMATION);
-}
-
-void
-JAWS_Asynch_IO::send_error_message (const char *buffer,
- int length)
-{
- this->send_message (buffer, length, ERROR_MESSAGE);
-}
-
-void
-JAWS_Asynch_IO::send_message (const char *buffer,
- int length,
- int act)
-{
- ACE_Message_Block *mb;
- ACE_NEW (mb, ACE_Message_Block (buffer, length));
-
- if (mb == 0)
- {
- this->handler_->error_message_complete ();
- return;
- }
-
- ACE_Asynch_Write_Stream aw;
- if (aw.open (*this, this->handle_) == -1
- || aw.write (*mb, length, (void *) act) == -1)
- {
- mb->release ();
-
- if (act == CONFORMATION)
- this->handler_->confirmation_message_complete ();
- else
- this->handler_->error_message_complete ();
- }
-}
-
-void
-JAWS_Asynch_IO::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
-{
- result.message_block ().release ();
-
- if (result.act () == (void *) CONFORMATION)
- this->handler_->confirmation_message_complete ();
- else
- this->handler_->error_message_complete ();
-}
-
-#endif /* ACE_WIN32 */
-
-// #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-// template class ACE_Singleton<JAWS_VFS, ACE_SYNCH_MUTEX>;
-// #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-// #pragma instantiate ACE_Singleton<JAWS_VFS, ACE_SYNCH_MUTEX>
-// #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton<JAWS_Synch_IO, ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton<JAWS_Synch_IO, ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/IO.h b/apps/JAWS/PROTOTYPE/JAWS/IO.h
deleted file mode 100644
index 46dc24ff8c7..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/IO.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// IO.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#if !defined (JAWS_IO_H)
-#define JAWS_IO_H
-
-class ACE_Message_Block;
-class JAWS_IO_Handler;
-class JAWS_IO_Acceptor;
-
-#include "ace/ACE.h"
-#include "ace/Asynch_IO.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Singleton.h"
-
-class JAWS_IO
- // = TITLE
- //
- // This class defines the abstract interface for an I/O class in
- // the context of Web-likes servers
- //
- // = DESCRIPTION
- //
- // An I/O class should have the following interface. Derived
- // classes will define the exactly how the I/O will take place
- // (Asynchronous, Synchronous, Reactive)
-{
-public:
- JAWS_IO (void);
- virtual ~JAWS_IO (void);
-
- // void acceptor (JAWS_IO_Acceptor *acceptor);
- // void handler (JAWS_IO_Handler *handler);
- // void handle (ACE_HANDLE h);
- // ACE_HANDLE handle (void);
-
- // James, please add documentation here.
-
- virtual void accept (JAWS_IO_Handler *ioh) = 0;
- // accept a passive connection
-
- virtual void read (JAWS_IO_Handler *ioh,
- ACE_Message_Block& mb,
- int size) = 0;
- // read from the handle size bytes into the message block.
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size) = 0;
- // send header, filename, trailer to the handle.
-
- virtual void receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length) = 0;
- // read data from the handle and store in filename.
-
- virtual void send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- int length) = 0;
- // send a confirmation message to the handle.
-
- virtual void send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- int length) = 0;
- // send an error message to the handle.
-
-protected:
- ACE_HANDLE handle_;
- JAWS_IO_Handler *handler_;
- ACE_INET_Addr *inet_addr_;
- JAWS_IO_Acceptor *acceptor_;
-};
-
-class JAWS_Synch_IO : public JAWS_IO
- // = TITLE
- //
- // This class defines the interface for a Synchronous I/O class.
- //
- // = DESCRIPTION
-{
-public:
- JAWS_Synch_IO (void);
-
- ~JAWS_Synch_IO (void);
-
- virtual void accept (JAWS_IO_Handler *ioh);
-
- void read (JAWS_IO_Handler *ioh, ACE_Message_Block& mb, int size);
-
- void transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size);
-
- void receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length);
-
- void send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- int length);
-
- void send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- int length);
-
-protected:
- virtual void send_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- int length);
-};
-
-typedef ACE_Singleton<JAWS_Synch_IO, ACE_SYNCH_MUTEX>
- JAWS_Synch_IO_Singleton;
-
-// This only works on Win32
-#if defined (ACE_WIN32)
-
-class JAWS_Asynch_IO : public JAWS_IO, public ACE_Handler
- // = TITLE
- //
- // This class defines the interface for a Asynchronous I/O class.
- //
- // = DESCRIPTION
-{
-public:
- JAWS_Asynch_IO (void);
-
- ~JAWS_Asynch_IO (void);
-
- void read (ACE_Message_Block& mb, int size);
-
- void transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size);
-
- void receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length);
-
- void send_confirmation_message (const char *buffer,
- int length);
-
- void send_error_message (const char *buffer,
- int length);
-
-protected:
- enum Message_Types
- {
- CONFORMATION,
- ERROR_MESSAGE
- };
-
- virtual void send_message (const char *buffer,
- int length,
- int act);
-
- virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result &result);
- // This method will be called when an asynchronous read completes on
- // a stream.
-
- virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result &result);
- // This method will be called when an asynchronous write completes
- // on a stream.
-
- virtual void handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result);
- // This method will be called when an asynchronous transmit file
- // completes.
-};
-
-typedef ACE_Singleton<JAWS_Asynch_IO, ACE_SYNCH_MUTEX>
- JAWS_Asynch_IO_Singleton;
-
-#endif /* ACE_WIN32 */
-#endif /* JAWS_IO_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.cpp b/apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.cpp
deleted file mode 100644
index cb80b35a226..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-// $Id$
-
-#include "JAWS/IO_Acceptor.h"
-
-JAWS_IO_Acceptor::JAWS_IO_Acceptor (void)
-{
-}
-
-JAWS_IO_Acceptor::~JAWS_IO_Acceptor (void)
-{
-}
-
-int
-JAWS_IO_Acceptor::open (const ACE_INET_Addr &)
-{
- return -1;
-}
-
-int
-JAWS_IO_Acceptor::accept (ACE_SOCK_Stream &, ACE_Addr *, ACE_Time_Value *,
- int, int) const
-{
- return -1;
-}
-
-int
-JAWS_IO_Acceptor::accept (size_t)
-{
- return -1;
-}
-
-int
-JAWS_IO_Synch_Acceptor::open (const ACE_INET_Addr &local_sap)
-{
- return this->acceptor_.open (local_sap);
-}
-
-int
-JAWS_IO_Synch_Acceptor::accept (ACE_SOCK_Stream &new_stream,
- ACE_Addr *remote_addr,
- ACE_Time_Value *timeout,
- int restart,
- int reset_new_handle) const
-{
- return this->acceptor_.accept (new_stream, remote_addr, timeout,
- restart, reset_new_handle);
-}
-
-
-int
-JAWS_IO_Asynch_Acceptor::open (const ACE_INET_Addr &address)
-{
- ACE_UNUSED_ARG (address);
- return -1;
-}
-
-int
-JAWS_IO_Asynch_Acceptor::accept (size_t bytes_to_read)
-{
-#if defined (ACE_WIN32)
- // This only works on Win32 platforms
- return this->acceptor_->accept (bytes_to_read);
-#else
- ACE_UNUSED_ARG (bytes_to_read);
- return -1;
-#endif /* defined (ACE_WIN32) */
-}
-
-
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton<JAWS_IO_Synch_Acceptor, ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_IO_Asynch_Acceptor, ACE_SYNCH_MUTEX>;
-template class ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton<JAWS_IO_Synch_Acceptor, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Singleton<JAWS_IO_Asynch_Acceptor, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.h b/apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.h
deleted file mode 100644
index 96bcdd9e37e..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#if !defined (JAWS_IO_ACCEPTOR_H)
-#define JAWS_IO_ACCEPTOR_H
-
-// Use the Adapter pattern to encapsulate either a LOCK_SOCK_Acceptor or
-// an ACE_Asynch_Acceptor
-
-#include "ace/Asynch_Acceptor.h"
-#include "ace/LOCK_SOCK_Acceptor.h"
-#include "ace/Singleton.h"
-
-#include "JAWS/IO.h"
-
-// Forward declaration.
-class ACE_Proactor;
-class ACE_Reactor;
-
-#if defined (ACE_HAS_THREAD_SAFE_ACCEPT)
-typedef ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_NULL_MUTEX> JAWS_IO_SOCK_Acceptor;
-#else
-typedef ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX> JAWS_IO_SOCK_Acceptor;
-#endif /* ACE_HAS_THREAD_SAFE_ACCEPT */
-
-class JAWS_IO_Acceptor
-{
-public:
-
- JAWS_IO_Acceptor (void);
- virtual ~JAWS_IO_Acceptor (void);
-
- virtual int open (const ACE_INET_Addr &address);
- // Initiate a passive mode socket.
-
- virtual int accept (ACE_SOCK_Stream &new_stream,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
- // Synchronously accept the connection
-
- virtual int accept (size_t bytes_to_read = 0);
- // This initiates a new asynchronous accept through the AcceptEx call.
-
- enum { ASYNC = 0, SYNCH = 1 };
- // identify if this is being used for aynchronous or synchronous
- // accept calls
-
-private:
-
-};
-
-class JAWS_IO_Synch_Acceptor : public JAWS_IO_Acceptor
-{
-public:
-
- virtual int open (const ACE_INET_Addr &local_sap);
- // Initiate a passive mode socket.
-
- virtual int accept (ACE_SOCK_Stream &new_stream,
- ACE_Addr *remote_addr = 0,
- ACE_Time_Value *timeout = 0,
- int restart = 1,
- int reset_new_handle = 0) const;
- // Accept the connection
-
-private:
- JAWS_IO_SOCK_Acceptor acceptor_;
-};
-
-
-class JAWS_IO_Asynch_Acceptor : public JAWS_IO_Acceptor
-{
-public:
-
- virtual int open (const ACE_INET_Addr &address);
- // Initiate an asynchronous passive connection
-
- virtual int accept (size_t bytes_to_read = 0);
- // This initiates a new asynchronous accept through the AcceptEx call.
-
-private:
-
-#if defined (ACE_WIN32)
-// This only works on Win32 platforms
- ACE_Asynch_Acceptor<JAWS_IO_Handler> acceptor_;
-#endif /* defined (ACE_WIN32) */
-};
-
-typedef ACE_Singleton<JAWS_IO_Synch_Acceptor, ACE_SYNCH_MUTEX>
- JAWS_IO_Synch_Acceptor_Singleton;
-
-typedef ACE_Singleton<JAWS_IO_Asynch_Acceptor, ACE_SYNCH_MUTEX>
- JAWS_IO_Asynch_Acceptor_Singleton;
-
-#endif /* !defined (JAWS_IO_ACCEPTOR_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp b/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp
deleted file mode 100644
index 95199b6cea2..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-// $Id$
-
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/Data_Block.h"
-
-JAWS_IO_Handler_Factory::~JAWS_IO_Handler_Factory (void)
-{
-}
-
-JAWS_Synch_IO_Handler::JAWS_Synch_IO_Handler (JAWS_IO_Handler_Factory *factory)
- : status_ (0),
- mb_ (0),
- handle_ (ACE_INVALID_HANDLE),
- task_ (0),
- factory_ (factory)
-{
- // this->io_->handler (this);
-}
-
-JAWS_Synch_IO_Handler::~JAWS_Synch_IO_Handler (void)
-{
- if (this->mb_)
- this->mb_->release ();
- this->mb_ = 0;
-}
-
-void
-JAWS_Synch_IO_Handler::accept_complete (ACE_HANDLE handle)
-{
- // callback into pipeline task, notify that the accept has completed
- this->handle_ = handle;
-}
-
-void
-JAWS_Synch_IO_Handler::accept_error (void)
-{
- // callback into pipeline task, notify that the accept has failed
-}
-
-void
-JAWS_Synch_IO_Handler::read_complete (ACE_Message_Block &data)
-{
- ACE_UNUSED_ARG (data);
- // We can call back into the pipeline task at this point
- // this->pipeline_->read_complete (data);
-}
-
-void
-JAWS_Synch_IO_Handler::read_error (void)
-{
- // this->pipeline_->read_error ();
-}
-
-void
-JAWS_Synch_IO_Handler::transmit_file_complete (void)
-{
- // this->pipeline_->transmit_file_complete ();
-}
-
-void
-JAWS_Synch_IO_Handler::transmit_file_error (int result)
-{
- ACE_UNUSED_ARG (result);
- // this->pipeline_->transmit_file_complete (result);
-}
-
-void
-JAWS_Synch_IO_Handler::receive_file_complete (void)
-{
-}
-
-void
-JAWS_Synch_IO_Handler::receive_file_error (int result)
-{
- ACE_UNUSED_ARG(result);
-}
-
-void
-JAWS_Synch_IO_Handler::write_error (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) error in writing response\n"));
-
- this->done ();
-}
-
-void
-JAWS_Synch_IO_Handler::confirmation_message_complete (void)
-{
-}
-
-void
-JAWS_Synch_IO_Handler::error_message_complete (void)
-{
-}
-
-JAWS_IO_Handler_Factory *
-JAWS_Synch_IO_Handler::factory (void)
-{
- return this->factory_;
-}
-
-ACE_HANDLE
-JAWS_Synch_IO_Handler::handle (void)
-{
- return this->handle_;
-}
-
-void
-JAWS_Synch_IO_Handler::task (JAWS_Pipeline_Handler *ph)
-{
- this->task_ = ph;
-}
-
-JAWS_Pipeline_Handler *
-JAWS_Synch_IO_Handler::task (void)
-{
- return this->task_;
-}
-
-void
-JAWS_Synch_IO_Handler::done (void)
-{
- this->factory ()->destroy_io_handler (this);
-}
-
-int
-JAWS_Synch_IO_Handler::status (void)
-{
- return this->status_;
-}
-
-JAWS_IO_Handler *
-JAWS_Synch_IO_Handler_Factory::create_io_handler (void)
-{
- JAWS_Synch_IO *io;
- JAWS_Synch_IO_Handler *handler;
-
- io = new JAWS_Synch_IO;
- if (io == 0) return 0;
-
- handler = new JAWS_Synch_IO_Handler (this);
- if (handler == 0) delete io;
-
- return handler;
-}
-
-void
-JAWS_Synch_IO_Handler_Factory::destroy_io_handler (JAWS_IO_Handler *handler)
-{
- delete handler;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton<JAWS_Synch_IO_Handler_Factory, ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton<JAWS_Synch_IO_Handler_Factory, ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.h b/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.h
deleted file mode 100644
index b9689fc0f13..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.h
+++ /dev/null
@@ -1,259 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// IO.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#if !defined (JAWS_IO_HANDLER_H)
-#define JAWS_IO_HANDLER_H
-
-#include "ace/Asynch_IO.h"
-#include "ace/Singleton.h"
-
-// #include "JAWS/IO.h"
-class JAWS_IO;
-class JAWS_Synch_IO;
-class JAWS_Asynch_IO;
-class JAWS_IO_Handler;
-class JAWS_Synch_IO_Handler;
-class JAWS_Asynch_IO_Handler;
-class JAWS_IO_Handler_Factory;
-class JAWS_Synch_IO_Handler_Factory;
-class JAWS_Asynch_IO_Handler_Factory;
-class JAWS_Data_Block;
-class JAWS_Pipeline_Handler;
-
-class JAWS_IO_Handler
- // = TITLE
- //
- // This class defines the abstract interface for an I/O handler
- // class in the context of Web-likes servers
- //
- // = DESCRIPTION
-{
-public:
- virtual void task (JAWS_Pipeline_Handler *ph) = 0;
- virtual JAWS_Pipeline_Handler *task (void) = 0;
-
- virtual void accept_complete (ACE_HANDLE handle) = 0;
- // This method is called by the IO class when new passive connection has
- // been established.
-
- virtual void accept_error (void) = 0;
- // This method is called by the IO class when new passive connection has
- // been established.
-
-#if 0
- virtual void connect_complete (ACE_Message_Block &) = 0;
- // This method is called by the IO class when new active connection has
- // been established.
-
- virtual void connect_error (ACE_Message_Block &) = 0;
- // This method is called by the IO class when new active connection has
- // been established.
-#endif
-
- virtual void read_complete (ACE_Message_Block &data) = 0;
- // This method is called by the IO class when new client data shows
- // up.
-
- virtual void read_error (void) = 0;
- // This method is called by the IO class when there was an error in
- // reading new data from the client.
-
- virtual void transmit_file_complete (void) = 0;
- // This method is called by the IO class when the requested file has
- // been successfully transmitted to the client.
-
- virtual void transmit_file_error (int result) = 0;
- // This method is called by the IO class when there was an error in
- // transmitting the requested file to the client.
-
- virtual void receive_file_complete (void) = 0;
- // This method is called by the IO class when the requested file has
- // been successfully received from the client.
-
- virtual void receive_file_error (int result) = 0;
- // This method is called by the IO class when there was an error in
- // receiving the requested file from the client.
-
- virtual void write_error (void) = 0;
- // This method is called by the IO class when there was an error in
- // writing data to the client.
-
- virtual void confirmation_message_complete (void) = 0;
- // This method is called by the IO class when the confirmation
- // message has been delivered to the client.
-
- virtual void error_message_complete (void) = 0;
- // This method is called by the IO class when the error message has
- // been delivered to the client.
-
- virtual JAWS_IO_Handler_Factory *factory (void) = 0;
- // Returns the factory for this IO handler
-
- virtual ACE_HANDLE handle (void) = 0;
- // Returns the socket handle for this handler
-
- virtual int status (void) = 0;
-
- enum { IDLE = 0,
- ACCEPT_OK, ACCEPT_ERROR,
- READ_OK, READ_ERROR,
- WRITE_OK, WRITE_ERROR,
- TRANSMIT_OK, TRANSMIT_ERROR,
- RECEIVE_OK, RECEIVE_ERROR };
-};
-
-class JAWS_IO_Handler_Factory
-#if defined (ACE_WIN32)
- : public ACE_Service_Handler
-#endif
-{
-public:
- virtual ~JAWS_IO_Handler_Factory (void);
- // Destructor
-
- virtual JAWS_IO_Handler *create_io_handler (void) = 0;
- // This creates a new HTTP_Handler
-
- virtual void destroy_io_handler (JAWS_IO_Handler *handler) = 0;
- // The HTTP handler will call this method from HTTP_Handler::done to
- // tell the factory to reap up the handler as it is now done with
- // the protocol
-};
-
-class JAWS_Synch_IO_Handler : protected JAWS_IO_Handler
-{
-friend class JAWS_Synch_IO;
-friend class JAWS_Synch_IO_Handler_Factory;
-
-public:
- JAWS_Synch_IO_Handler (JAWS_IO_Handler_Factory *factory);
- virtual ~JAWS_Synch_IO_Handler (void);
-
-protected:
- // Inherited from JAWS_IO_Handler
-
- virtual void accept_complete (ACE_HANDLE handle);
- virtual void accept_error (void);
- virtual void read_complete (ACE_Message_Block &data);
- virtual void read_error (void);
- virtual void transmit_file_complete (void);
- virtual void transmit_file_error (int result);
- virtual void receive_file_complete (void);
- virtual void receive_file_error (int result);
- virtual void write_error (void);
- virtual void confirmation_message_complete (void);
- virtual void error_message_complete (void);
- virtual void task (JAWS_Pipeline_Handler *ph);
-
- virtual JAWS_IO_Handler_Factory *factory (void);
- virtual ACE_HANDLE handle (void);
-
- virtual void done (void);
- virtual int status (void);
- virtual JAWS_Pipeline_Handler *task (void);
-
-private:
- int status_;
- // The state of the handler.
-
- ACE_Message_Block *mb_;
- // This maintains the state of the request.
-
- ACE_HANDLE handle_;
- // The socket handle returned from accept.
-
- JAWS_Pipeline_Handler *task_;
- // This is a reference to the next stage of the pipeline when the IO
- // request completes.
-
- JAWS_IO_Handler_Factory *factory_;
-};
-
-class JAWS_Synch_IO_Handler_Factory : public JAWS_IO_Handler_Factory
-{
-public:
- JAWS_IO_Handler *create_io_handler (void);
- // This creates a new HTTP_Handler
-
- void destroy_io_handler (JAWS_IO_Handler *handler);
- // The HTTP handler will call this method from HTTP_Handler::done to
- // tell the factory to reap up the handler as it is now done with
- // the protocol
-};
-
-typedef ACE_Singleton<JAWS_Synch_IO_Handler_Factory, ACE_SYNCH_MUTEX>
- JAWS_Synch_IO_Handler_Factory_Singleton;
-
-// This only works on Win32
-#if defined (ACE_WIN32)
-
-class JAWS_Asynch_IO_Handler : protected JAWS_IO_Handler
-{
-public:
- JAWS_Asynch_IO_Handler (void);
- virtual ~JAWS_Asynch_IO_Handler (void);
-
-protected:
- // Inherited from JAWS_IO_Handler
-
- virtual void accept_complete (void);
- virtual void accept_error (void);
- virtual void read_complete (ACE_Message_Block &data);
- virtual void read_error (void);
- virtual void transmit_file_complete (void);
- virtual void transmit_file_error (int result);
- virtual void receive_file_complete (void);
- virtual void receive_file_error (int result);
- virtual void write_error (void);
- virtual void confirmation_message_complete (void);
- virtual void error_message_complete (void);
- virtual JAWS_Handler_Factory *factory (void);
- virtual void task (JAWS_Pipeline_Handler *ph);
- virtual JAWS_Pipeline_Handler *task (void);
-
-
-private:
- ACE_Message_Block *state_;
- // This maintains the state of the request.
-
- JAWS_IO *io_;
- // The reference to our IO interface (synch vs. asynch)
-
- JAWS_Pipeline *pipeline_;
- // This is a reference to the next stage of the pipeline when the IO
- // request completes.
-
- JAWS_IO_Handler_Factory *factory_;
-};
-
-class JAWS_Asynch_IO_Handler_Factory : public JAWS_IO_Handler_Factory
-{
-public:
- JAWS_IO_Handler *create_io_handler (void);
- // This creates a new HTTP_Handler
-
- void destroy_io_handler (JAWS_IO_Handler *handler);
- // The HTTP handler will call this method from HTTP_Handler::done to
- // tell the factory to reap up the handler as it is now done with
- // the protocol
-};
-
-typedef ACE_Singleton<JAWS_Asynch_IO_Handler_Factory, ACE_SYNCH_MUTEX>
- JAWS_Asynch_IO_Handler_Factory_Singleton;
-
-#endif /* ACE_WIN32 */
-#endif /* JAWS_IO_HANDLER_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/IO_State.h b/apps/JAWS/PROTOTYPE/JAWS/IO_State.h
deleted file mode 100644
index 18648f71613..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/IO_State.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// IO.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#if !defined (JAWS_IO_STATE_H)
-#define JAWS_IO_STATE_H
-
-#include "ace/Asynch_IO.h"
-
-// #include "JAWS/IO.h"
-class JAWS_IO;
-class JAWS_Synch_IO;
-class JAWS_Asynch_IO;
-class JAWS_IO_Handler;
-class JAWS_Synch_IO_Handler;
-class JAWS_Asynch_IO_Handler;
-class JAWS_IO_Handler_Factory;
-class JAWS_Synch_IO_Handler_Factory;
-class JAWS_Asynch_IO_Handler_Factory;
-class JAWS_Pipeline;
-
-class JAWS_IO_Handler
- // = TITLE
- //
- // This class defines the abstract interface for an I/O handler
- // class in the context of Web-likes servers
- //
- // = DESCRIPTION
-{
-public:
- virtual void accept_complete (void) = 0;
- // This method is called by the IO class when new passive connection has
- // been established.
-
- virtual void accept_error (void) = 0;
- // This method is called by the IO class when new passive connection has
- // been established.
-
-#if 0
- virtual void connect_complete (ACE_Message_Block &) = 0;
- // This method is called by the IO class when new active connection has
- // been established.
-
- virtual void connect_error (ACE_Message_Block &) = 0;
- // This method is called by the IO class when new active connection has
- // been established.
-#endif
-
- virtual void read_complete (ACE_Message_Block &data) = 0;
- // This method is called by the IO class when new client data shows
- // up.
-
- virtual void read_error (void) = 0;
- // This method is called by the IO class when there was an error in
- // reading new data from the client.
-
- virtual void transmit_file_complete (void) = 0;
- // This method is called by the IO class when the requested file has
- // been successfully transmitted to the client.
-
- virtual void transmit_file_error (int result) = 0;
- // This method is called by the IO class when there was an error in
- // transmitting the requested file to the client.
-
- virtual void receive_file_complete (void) = 0;
- // This method is called by the IO class when the requested file has
- // been successfully received from the client.
-
- virtual void receive_file_error (int result) = 0;
- // This method is called by the IO class when there was an error in
- // receiving the requested file from the client.
-
- virtual void write_error (void) = 0;
- // This method is called by the IO class when there was an error in
- // writing data to the client.
-
- virtual void confirmation_message_complete (void) = 0;
- // This method is called by the IO class when the confirmation
- // message has been delivered to the client.
-
- virtual void error_message_complete (void) = 0;
- // This method is called by the IO class when the error message has
- // been delivered to the client.
-
- virtual JAWS_IO_Handler_Factory *factory (void) = 0;
- // Returns the factory for this IO handler
-};
-
-class JAWS_IO_Handler_Factory
-#if defined (ACE_WIN32)
- : public ACE_Service_Handler
-#endif
-{
-public:
- virtual ~JAWS_IO_Handler_Factory (void);
- // Destructor
-
- virtual JAWS_IO_Handler *create_io_handler (void) = 0;
- // This creates a new HTTP_Handler
-
- virtual void destroy_io_handler (JAWS_IO_Handler *handler, JAWS_IO *io) = 0;
- // The HTTP handler will call this method from HTTP_Handler::done to
- // tell the factory to reap up the handler as it is now done with
- // the protocol
-};
-
-class JAWS_Synch_IO_Handler : protected JAWS_IO_Handler
-{
-friend class JAWS_Synch_IO;
-friend class JAWS_Synch_IO_Handler_Factory;
-
-public:
- JAWS_Synch_IO_Handler (JAWS_IO *io, JAWS_IO_Handler_Factory *factory);
- virtual ~JAWS_Synch_IO_Handler (void);
-
-protected:
- // Inherited from JAWS_IO_Handler
-
- virtual void accept_complete (void);
- virtual void accept_error (void);
- virtual void read_complete (ACE_Message_Block &data);
- virtual void read_error (void);
- virtual void transmit_file_complete (void);
- virtual void transmit_file_error (int result);
- virtual void receive_file_complete (void);
- virtual void receive_file_error (int result);
- virtual void write_error (void);
- virtual void confirmation_message_complete (void);
- virtual void error_message_complete (void);
- virtual JAWS_IO_Handler_Factory *factory (void);
-
- virtual void done (void);
-
-private:
- ACE_Message_Block *state_;
- // This maintains the state of the request.
-
- JAWS_IO *io_;
- // The reference to our IO interface (synch vs. asynch)
-
- JAWS_Pipeline *pipeline_;
- // This is a reference to the next stage of the pipeline when the IO
- // request completes.
-
- JAWS_IO_Handler_Factory *factory_;
-};
-
-class JAWS_Synch_IO_Handler_Factory : public JAWS_IO_Handler_Factory
-{
-public:
- JAWS_IO_Handler *create_io_handler (void);
- // This creates a new HTTP_Handler
-
- void destroy_io_handler (JAWS_IO_Handler *handler, JAWS_IO *io);
- // The HTTP handler will call this method from HTTP_Handler::done to
- // tell the factory to reap up the handler as it is now done with
- // the protocol
-};
-
-// This only works on Win32
-#if defined (ACE_WIN32)
-
-class JAWS_Asynch_IO_Handler : protected JAWS_IO_Handler
-{
-public:
- JAWS_Asynch_IO_Handler (void);
- virtual ~JAWS_Asynch_IO_Handler (void);
-
-protected:
- // Inherited from JAWS_IO_Handler
-
- virtual void accept_complete (void);
- virtual void accept_error (void);
- virtual void read_complete (ACE_Message_Block &data);
- virtual void read_error (void);
- virtual void transmit_file_complete (void);
- virtual void transmit_file_error (int result);
- virtual void receive_file_complete (void);
- virtual void receive_file_error (int result);
- virtual void write_error (void);
- virtual void confirmation_message_complete (void);
- virtual void error_message_complete (void);
- virtual JAWS_Handler_Factory *factory (void);
-
-private:
- ACE_Message_Block *state_;
- // This maintains the state of the request.
-
- JAWS_Dispatch_Policy *policy_;
- // The reference to our IO interface (synch vs. asynch)
-
- JAWS_Pipeline *pipeline_;
- // This is a reference to the next stage of the pipeline when the IO
- // request completes.
-
- JAWS_IO_Handler_Factory *factory_;
-};
-
-class JAWS_Asynch_IO_Handler_Factory : public JAWS_IO_Handler_Factory
-{
-public:
- JAWS_IO_Handler *create_io_handler (void);
- // This creates a new HTTP_Handler
-
- void destroy_io_handler (JAWS_IO_Handler *handler, JAWS_IO *io);
- // The HTTP handler will call this method from HTTP_Handler::done to
- // tell the factory to reap up the handler as it is now done with
- // the protocol
-};
-
-#endif /* ACE_WIN32 */
-#endif /* JAWS_IO_STATE_H */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Makefile b/apps/JAWS/PROTOTYPE/JAWS/Makefile
deleted file mode 100644
index ddbf2000375..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Makefile
+++ /dev/null
@@ -1,1080 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE Adapter Web Server (JAWS)
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-#BIN = main
-
-LIB = libJAWS.a
-
-MYFILES = \
- Pipeline \
- Pipeline_Tasks \
- Data_Block \
- Policy \
- Concurrency \
- Server \
- IO_Acceptor \
- IO_Handler \
- IO
-
-LSRC = $(addsuffix .cpp,$(MYFILES))
-LOBJ = $(addsuffix .o,$(MYFILES))
-
-#CFLAGS += -I$(ACE_ROOT)/apps/JAWS/server/PROTOTYPE
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-#LDLIBS = -lJAWS
-
-BUILD = $(VOBJS) $(VLIB) #$(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-# The contents of rules.bin.GNU are expanded in Local targets, below.
-# include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-# include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-# Expand rules.bin.GNU, but without the $(VOBJS) dependencies.
-VBIN = $(BIN:%=%$(VAR))
-
-$(BIN): %: $(VDIR)%.o
- $(LINK.cc) -o $@ $^ $(LDFLAGS) $(VLDLIBS) $(POSTLINK)
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/Pipeline.o .obj/Pipeline.so .shobj/Pipeline.o .shobj/Pipeline.so: Pipeline.cpp JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Message_Queue.cpp \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp \
- JAWS/JAWS/Pipeline_Handler.h JAWS/JAWS/JAWS/Pipeline.h \
- JAWS/JAWS/JAWS/Pipeline_Handler.cpp \
- JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.h JAWS/Pipeline_Handler.cpp
-.obj/Pipeline_Tasks.o .obj/Pipeline_Tasks.so .shobj/Pipeline_Tasks.o .shobj/Pipeline_Tasks.so: Pipeline_Tasks.cpp JAWS/Pipeline_Tasks.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- JAWS/JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Message_Queue.cpp \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp \
- JAWS/JAWS/JAWS/Pipeline_Handler.h JAWS/JAWS/JAWS/JAWS/Pipeline.h \
- JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.cpp \
- JAWS/JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.h JAWS/JAWS/Data_Block.h \
- JAWS/JAWS/JAWS/Pipeline.h JAWS/Data_Block.h JAWS/IO_Handler.h \
- $(ACE_ROOT)/ace/Asynch_IO.h JAWS/Policy.h \
- JAWS/JAWS/Concurrency.h JAWS/JAWS/JAWS/IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i
-.obj/Data_Block.o .obj/Data_Block.so .shobj/Data_Block.o .shobj/Data_Block.so: Data_Block.cpp JAWS/Data_Block.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- JAWS/JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Message_Queue.cpp \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp \
- JAWS/JAWS/JAWS/Pipeline_Handler.h JAWS/JAWS/JAWS/JAWS/Pipeline.h \
- JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.cpp \
- JAWS/JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.h JAWS/Policy.h \
- JAWS/JAWS/Concurrency.h JAWS/JAWS/JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i
-.obj/Policy.o .obj/Policy.so .shobj/Policy.o .shobj/Policy.so: Policy.cpp JAWS/Policy.h JAWS/JAWS/Concurrency.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Message_Queue.cpp \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- JAWS/JAWS/JAWS/IO.h $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i JAWS/Concurrency.h \
- JAWS/IO_Handler.h JAWS/IO_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.cpp \
- JAWS/JAWS/IO.h
-.obj/Concurrency.o .obj/Concurrency.so .shobj/Concurrency.o .shobj/Concurrency.so: Concurrency.cpp JAWS/Concurrency.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Message_Queue.cpp \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp JAWS/JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i JAWS/IO_Handler.h \
- JAWS/Pipeline.h $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp \
- JAWS/JAWS/Pipeline_Handler.h JAWS/JAWS/JAWS/Pipeline.h \
- JAWS/JAWS/JAWS/Pipeline_Handler.cpp \
- JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.h JAWS/Pipeline_Tasks.h \
- JAWS/JAWS/Pipeline.h JAWS/JAWS/Data_Block.h JAWS/Policy.h \
- JAWS/JAWS/Concurrency.h JAWS/Data_Block.h
-.obj/Server.o .obj/Server.so .shobj/Server.o .shobj/Server.so: Server.cpp $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Get_Opt.i JAWS/Server.h \
- JAWS/JAWS/Data_Block.h $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- JAWS/JAWS/JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Message_Queue.cpp \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp \
- JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.h \
- JAWS/JAWS/JAWS/JAWS/JAWS/Pipeline.h \
- JAWS/JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.cpp \
- JAWS/JAWS/JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.h JAWS/JAWS/Policy.h \
- JAWS/JAWS/JAWS/Concurrency.h JAWS/JAWS/JAWS/JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i JAWS/Data_Block.h \
- JAWS/Concurrency.h JAWS/IO.h JAWS/IO_Handler.h JAWS/IO_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.cpp \
- JAWS/JAWS/IO.h JAWS/Pipeline_Tasks.h JAWS/JAWS/Pipeline.h
-.obj/IO_Acceptor.o .obj/IO_Acceptor.so .shobj/IO_Acceptor.o .shobj/IO_Acceptor.so: IO_Acceptor.cpp JAWS/IO_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.cpp \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp JAWS/JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h
-.obj/IO_Handler.o .obj/IO_Handler.so .shobj/IO_Handler.o .shobj/IO_Handler.so: IO_Handler.cpp JAWS/IO.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- JAWS/IO_Handler.h JAWS/Data_Block.h JAWS/JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Message_Queue.cpp \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp \
- JAWS/JAWS/JAWS/Pipeline_Handler.h JAWS/JAWS/JAWS/JAWS/Pipeline.h \
- JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.cpp \
- JAWS/JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.h
-.obj/IO.o .obj/IO.so .shobj/IO.o .shobj/IO.so: IO.cpp JAWS/IO.h $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- JAWS/IO_Handler.h JAWS/IO_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.cpp \
- JAWS/JAWS/IO.h $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Filecache.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Pipeline.cpp b/apps/JAWS/PROTOTYPE/JAWS/Pipeline.cpp
deleted file mode 100644
index 5c8c7464882..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Pipeline.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// $Id$
-
-#include "JAWS/Pipeline.h"
-
-JAWS_Pipeline::JAWS_Pipeline (void)
-{
-}
-
-int
-JAWS_Pipeline::open (void *)
-{
- // Simply call into the virtual svc() method.
- if (this->svc () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "JAWS_Pipeline::svc"),
- -1);
- return 0;
-}
-
-int
-JAWS_Pipeline::close (u_long)
-{
- return 0;
-}
-
-#include "JAWS/Pipeline_Handler.cpp"
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Pipeline.h b/apps/JAWS/PROTOTYPE/JAWS/Pipeline.h
deleted file mode 100644
index 16bcc62cdf5..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Pipeline.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#if !defined (JAWS_PIPELINE_H)
-#define JAWS_PIPELINE_H
-
-#include "ace/Synch.h"
-#include "ace/Service_Config.h"
-#include "ace/Stream.h"
-#include "ace/Module.h"
-#include "ace/Task.h"
-
-typedef ACE_Stream<ACE_NULL_SYNCH> JAWS_Pipeline_Stream;
-typedef ACE_Module<ACE_NULL_SYNCH> JAWS_Pipeline_Module;
-typedef ACE_Task<ACE_NULL_SYNCH> JAWS_Pipeline_Task;
-
-class JAWS_IO_Handler;
-class JAWS_Dispatch_Policy;
-
-class JAWS_Pipeline : public JAWS_Pipeline_Task
- // = TITLE
- // Methods that are common to pipeline components
-{
-public:
- JAWS_Pipeline (void);
- // ACE_Task hooks
-
- virtual int open (void * = 0);
- virtual int close (u_long = 0);
-};
-
-#include "JAWS/Pipeline_Handler.h"
-
-#endif /* !defined (JAWS_PIPELINE_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler.cpp b/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler.cpp
deleted file mode 100644
index 31dc44a6c74..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-// $Id$
-
-#if !defined (JAWS_PIPELINE_HANDLER_CPP)
-#define JAWS_PIPELINE_HANDLER_CPP
-
-#include "JAWS/Pipeline_Handler.h"
-
-template <class TYPE>
-JAWS_Pipeline_Abstract_Handler<TYPE>::JAWS_Pipeline_Abstract_Handler (void)
-{
-}
-
-template <class TYPE>
-JAWS_Pipeline_Abstract_Handler<TYPE>::~JAWS_Pipeline_Abstract_Handler (void)
-{
-}
-
-template <class TYPE> int
-JAWS_Pipeline_Abstract_Handler<TYPE>::put (ACE_Message_Block *mb,
- ACE_Time_Value *tv)
-{
- TYPE *data = ACE_dynamic_cast (TYPE *,
- mb->data_block ());
-
- int status = this->handle_put (data, tv);
-
- return status;
-}
-
-#endif /* !defined (JAWS_PIPELINE_HANDLER_CPP) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler.h b/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler.h
deleted file mode 100644
index fb68d07f107..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#if !defined (JAWS_PIPELINE_HANDLER_H)
-#define JAWS_PIPELINE_HANDLER_H
-
-#include "JAWS/Pipeline.h"
-
-template <class TYPE>
-class JAWS_Pipeline_Abstract_Handler : public JAWS_Pipeline_Task
- // = TITLE
- // Methods that are common to pipeline components
-{
-public:
- JAWS_Pipeline_Abstract_Handler (void);
- virtual ~JAWS_Pipeline_Abstract_Handler (void);
- // ACE_Task hooks
-
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- // inherited from ACE_Task
-
- virtual int handle_put (TYPE *data, ACE_Time_Value *tv) = 0;
- // Callback hook for specialized data processing
-
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS/Pipeline_Handler.cpp"
-#endif
-
-#endif /* !defined (JAWS_PIPELINE_HANDLER_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.cpp b/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.cpp
deleted file mode 100644
index 85b078d4567..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-// $Id$
-
-#include "JAWS/Pipeline_Tasks.h"
-#include "JAWS/Data_Block.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/Policy.h"
-
-JAWS_Pipeline_Handler::~JAWS_Pipeline_Handler (void)
-{
-}
-
-int
-JAWS_Pipeline_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- JAWS_Data_Block *db = ACE_dynamic_cast (JAWS_Data_Block *, mb->data_block ());
-
- int status = this->handle_put (db, tv);
-
- if (status != -1)
- {
- JAWS_Pipeline_Handler *task = db->io_handler ()->task ();
- JAWS_Pipeline_Handler *next
- = ACE_dynamic_cast (JAWS_Pipeline_Handler *, task->next ());
-
- db->io_handler ()->task (next);
- }
-
- return status;
-}
-
-int
-JAWS_Pipeline_Accept_Task::handle_put (JAWS_Data_Block *data,
- ACE_Time_Value *)
-{
- int result = -1;
-
- // JAWS_Data_Block should contain an INET_Addr and an IO
- JAWS_IO_Handler *handler = data->io_handler ();
- JAWS_Dispatch_Policy *policy = data->policy ();
- JAWS_Pipeline_Handler *task = handler->task ();
-
- // data->policy ()->update (handler);
-
- JAWS_IO *io = policy->io ();
- io->accept (handler);
-
- // When accept returns, the resulting handle should be stored into
- // the JAWS_DATA_BLOCK somewhere.
-
- // Check the handler for status of the io call
- switch (handler->status ())
- {
- case JAWS_IO_Handler::ACCEPT_OK:
- result = 0;
- ACE_TRACE ("JAWS_Pipeline_Accept_Task::handle_put ACCEPT_OK");
- // At this point need to move to the next task in the pipeline!
- // The framework should automatically call the next stage.
- data->task (task);
- break;
- case JAWS_IO_Handler::ACCEPT_ERROR:
- result = -1;
- ACE_TRACE ("JAWS_Pipeline_Accept_Task::handle_put ACCEPT_ERROR");
- // Should recycle the thread
- break;
- default:
- result = 1;
- ACE_TRACE ("JAWS_Pipeline_Accept_Task::handle_put ACCEPT_IDLE");
- // Should mean that the IO is asynchronous, and the word isn't out
- // yet.
- break;
- }
-
- // In asynchronous and synchronous models, we can --
- // have the io_handler set the new task in the data_block
-
- // In asynchronous model, we can --
- // insert a wait task into the task queue
-
- return result;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class JAWS_Pipeline_Abstract_Handler<JAWS_Data_Block>;
-template class ACE_Singleton<JAWS_Pipeline_Accept_Task, ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate JAWS_Pipeline_Abstract_Handler<JAWS_Data_Block>
-#pragma instantiate ACE_Singleton<JAWS_Pipeline_Accept_Task, ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.h b/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.h
deleted file mode 100644
index 1f4dfcd3f1b..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#if !defined (JAWS_PIPELINE_TASKS_H)
-#define JAWS_PIPELINE_TASKS_H
-
-#include "ace/Singleton.h"
-
-#include "JAWS/Pipeline.h"
-#include "JAWS/Data_Block.h"
-
-class JAWS_Pipeline_Handler
- : public JAWS_Pipeline_Abstract_Handler<JAWS_Data_Block>
-{
-public:
- virtual ~JAWS_Pipeline_Handler (void);
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- virtual int handle_put (JAWS_Data_Block *data, ACE_Time_Value *tv) = 0;
-};
-
-class JAWS_Pipeline_Accept_Task : public JAWS_Pipeline_Handler
-{
-public:
- virtual int handle_put (JAWS_Data_Block *data, ACE_Time_Value *tv);
-};
-
-typedef ACE_Singleton<JAWS_Pipeline_Accept_Task, ACE_SYNCH_MUTEX>
- JAWS_Pipeline_Accept_Task_Singleton;
-
-#endif /* !defined (JAWS_PIPELINE_TASKS_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Policy.cpp b/apps/JAWS/PROTOTYPE/JAWS/Policy.cpp
deleted file mode 100644
index c4263b86b8e..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Policy.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-// $Id$
-
-#include "JAWS/Policy.h"
-#include "JAWS/Concurrency.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/IO_Acceptor.h"
-
-JAWS_Dispatch_Policy::JAWS_Dispatch_Policy (void)
-{
-}
-
-JAWS_Dispatch_Policy::~JAWS_Dispatch_Policy (void)
-{
-}
-
-JAWS_Default_Dispatch_Policy::JAWS_Default_Dispatch_Policy (void)
- : concurrency_ (JAWS_Thread_Pool_Singleton::instance ()),
- ioh_factory_ (JAWS_Synch_IO_Handler_Factory_Singleton::instance ()),
- acceptor_ (JAWS_IO_Synch_Acceptor_Singleton::instance ()),
- io_ (JAWS_Synch_IO_Singleton::instance ())
-{
-}
-
-JAWS_Default_Dispatch_Policy::~JAWS_Default_Dispatch_Policy (void)
-{
-}
-
-JAWS_IO *
-JAWS_Default_Dispatch_Policy::io (void)
-{
- return this->io_;
-}
-
-JAWS_IO_Handler_Factory *
-JAWS_Default_Dispatch_Policy::ioh_factory (void)
-{
- return this->ioh_factory_;
-}
-
-JAWS_IO_Acceptor *
-JAWS_Default_Dispatch_Policy::acceptor (void)
-{
- return this->acceptor_;
-}
-
-JAWS_Concurrency_Base *
-JAWS_Default_Dispatch_Policy::concurrency (void)
-{
- return this->concurrency_;
-}
-
-void
-JAWS_Default_Dispatch_Policy::io (JAWS_IO *)
-{
-}
-
-void
-JAWS_Default_Dispatch_Policy::ioh_factory (JAWS_IO_Handler_Factory *)
-{
-}
-
-void
-JAWS_Default_Dispatch_Policy::acceptor (JAWS_IO_Acceptor *)
-{
-}
-
-void
-JAWS_Default_Dispatch_Policy::concurrency (JAWS_Concurrency_Base *concp)
-{
- this->concurrency_ = concp;
-}
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Policy.h b/apps/JAWS/PROTOTYPE/JAWS/Policy.h
deleted file mode 100644
index e4556169a6b..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Policy.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#if !defined (JAWS_POLICY_H)
-#define JAWS_POLICY_H
-
-#include "JAWS/Concurrency.h"
-
-class JAWS_IO;
-class JAWS_IO_Handler;
-class JAWS_IO_Handler_Factory;
-
-class JAWS_Dispatch_Policy
- // = TITLE
- // Policy mechanism for choosing different concurrency models.
- //
- // = DESCRIPTION
- // Given some (unspecified) state, decides what the concurrency
- // model should be. (For now, we always return the same model.)
-{
-public:
- JAWS_Dispatch_Policy (void);
- virtual ~JAWS_Dispatch_Policy (void);
-
- virtual JAWS_IO * io (void) = 0;
- virtual JAWS_IO_Handler_Factory *ioh_factory (void) = 0;
- virtual JAWS_IO_Acceptor *acceptor (void) = 0;
- virtual JAWS_Concurrency_Base * concurrency (void) = 0;
-
- virtual void io (JAWS_IO *iop) = 0;
- virtual void ioh_factory (JAWS_IO_Handler_Factory *factoryp) = 0;
- virtual void acceptor (JAWS_IO_Acceptor *acceptorp) = 0;
- virtual void concurrency (JAWS_Concurrency_Base *concp) = 0;
-};
-
-class JAWS_Default_Dispatch_Policy : public JAWS_Dispatch_Policy
-{
-public:
- JAWS_Default_Dispatch_Policy (void);
- virtual ~JAWS_Default_Dispatch_Policy (void);
-
- virtual JAWS_IO *io (void);
- virtual JAWS_IO_Handler_Factory *ioh_factory (void);
- virtual JAWS_IO_Acceptor *acceptor (void);
- virtual JAWS_Concurrency_Base *concurrency (void);
-
- virtual void io (JAWS_IO *iop);
- virtual void ioh_factory (JAWS_IO_Handler_Factory *factoryp);
- virtual void acceptor (JAWS_IO_Acceptor *acceptorp);
- virtual void concurrency (JAWS_Concurrency_Base *concp);
-
-private:
- JAWS_Concurrency_Base *concurrency_;
- JAWS_IO_Handler_Factory *ioh_factory_;
- JAWS_IO_Acceptor *acceptor_;
- JAWS_IO *io_;
-};
-
-#endif /* !defined (JAWS_POLICY_H) */
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Server.cpp b/apps/JAWS/PROTOTYPE/JAWS/Server.cpp
deleted file mode 100644
index e5d041a21d9..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Server.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-// $Id$
-
-#include "ace/Get_Opt.h"
-
-#if (ACE_NTRACE != 1)
-#include "ace/Trace.h"
-#endif /* (ACE_NTRACE != 1) */
-
-#include "JAWS/Server.h"
-#include "JAWS/Data_Block.h"
-#include "JAWS/Concurrency.h"
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/IO_Acceptor.h"
-#include "JAWS/Pipeline_Tasks.h"
-
-JAWS_Server::JAWS_Server (void)
- : port_ (5432),
- concurrency_ (0),
- dispatch_ (0),
- nthreads_ (5),
- maxthreads_ (20),
- flags_ (THR_NEW_LWP)
-{
-}
-
-JAWS_Server::JAWS_Server (int argc, char *argv[])
- : port_ (5432),
- concurrency_ (0),
- dispatch_ (0),
- nthreads_ (5),
- maxthreads_ (20),
- flags_ (THR_NEW_LWP)
-{
- this->init (argc, argv);
-}
-
-void
-JAWS_Server::init (int argc, char *argv[])
-{
- this->parse_args (argc, argv);
-
- JAWS_Thread_Pool_Singleton::instance ()->open (this->flags_,
- this->nthreads_,
- this->maxthreads_);
-
- JAWS_Thread_Per_Singleton::instance ()->open (this->flags_,
- this->maxthreads_);
-
- if (this->concurrency_ == 1)
- this->policy_.concurrency (JAWS_Thread_Per_Singleton::instance ());
- else
- this->policy_.concurrency (JAWS_Thread_Pool_Singleton::instance ());
-
-#if !defined (ACE_WIN32)
- this->dispatch_ = 0;
-#endif /* !defined (ACE_WIN32) */
-
- if (this->dispatch_ == 1)
- {
-#if defined (ACE_WIN32)
- this->policy_.io (JAWS_Asynch_IO_Singleton::instance ());
- this->policy_.ioh_factory
- (JAWS_Asynch_IO_Handler_Factory_Singleton::instance ());
- this->policy_.acceptor (JAWS_IO_Asynch_Acceptor_Singleton::instance ());
-#endif /* defined (ACE_WIN32) */
- }
- else
- {
- this->policy_.io (JAWS_Synch_IO_Singleton::instance ());
- this->policy_.ioh_factory
- (JAWS_Synch_IO_Handler_Factory_Singleton::instance ());
- this->policy_.acceptor (JAWS_IO_Synch_Acceptor_Singleton::instance ());
- }
-
-}
-
-int
-JAWS_Server::open (JAWS_Pipeline_Handler *protocol,
- JAWS_Dispatch_Policy *policy)
-{
- if (policy == 0)
- policy = &this->policy_;
-
- JAWS_Data_Block db;
-
- ACE_INET_Addr inet_addr (this->port_);
- JAWS_IO_Synch_Acceptor_Singleton::instance ()->open (inet_addr);
- JAWS_IO_Asynch_Acceptor_Singleton::instance ()->open (inet_addr);
-
- // initialize data block
-
- db.task (JAWS_Pipeline_Accept_Task_Singleton::instance ());
- db.policy (policy);
-
- // The message block should contain an INET_Addr, and call the
- // io->accept (INET_Addr) method!
-
- ACE_Message_Block mb (&db);
-
- policy->concurrency ()->put (&mb);
-
- while (ACE_OS::thr_join (0, NULL) != -1)
- ;
-
- return 0;
-}
-
-void
-JAWS_Server::parse_args (int argc, char *argv[])
-{
- int c;
- int t = 1;
-
- ACE_Get_Opt getopt (argc, argv, "t" "p:c:d:n:m:f:");
- while ((c = getopt ()) != -1)
- switch (c)
- {
- case 't':
- t = !t;
- break;
- case 'p':
- this->port_ = ACE_OS::atoi (getopt.optarg);
- break;
- case 'c':
- if (ACE_OS::strcmp (getopt.optarg, "PER_REQUEST") == 0)
- this->concurrency_ = 1;
- else this->concurrency_ = 0;
- break;
- case 'd':
- if (ACE_OS::strcmp (getopt.optarg, "ASYNCH") == 0)
- this->dispatch_ = 1;
- else this->dispatch_ = 0;
- break;
- case 'n':
- this->nthreads_ = ACE_OS::atoi (getopt.optarg);
- break;
- case 'm':
- this->maxthreads_ = ACE_OS::atoi (getopt.optarg);
- break;
- case 'f':
- if (ACE_OS::strcmp (getopt.optarg, "THR_BOUND") == 0)
- this->flags_ |= THR_BOUND;
- else if (ACE_OS::strcmp (getopt.optarg, "THR_DAEMON") == 0)
- this->flags_ |= THR_DAEMON;
- else if (ACE_OS::strcmp (getopt.optarg, "THR_DETACHED") == 0)
- this->flags_ |= THR_DETACHED;
- break;
- }
-
-#if (ACE_NTRACE != 1)
- t ? ACE_Trace::start_tracing () : ACE_Trace::stop_tracing ();
-#endif /* (ACE_NTRACE != 1) */
-
- if (this->port_ == 0) this->port_ = 5432;
- if (this->nthreads_ == 0) this->nthreads_ = 5;
- if (this->maxthreads_ == 0) this->maxthreads_ = 20;
-}
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Server.h b/apps/JAWS/PROTOTYPE/JAWS/Server.h
deleted file mode 100644
index 34af4421b17..00000000000
--- a/apps/JAWS/PROTOTYPE/JAWS/Server.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#if !defined (JAWS_SERVER_H)
-#define JAWS_SERVER_H
-
-#include "JAWS/Data_Block.h"
-#include "JAWS/Policy.h"
-
-class JAWS_IO_Handler_Factory;
-
-class JAWS_Server
-{
-public:
- JAWS_Server (void);
- JAWS_Server (int argc, char *argv[]);
-
- void init (int argc, char *argv[]);
- int open (JAWS_Pipeline_Handler *ph, JAWS_Dispatch_Policy *dp = 0);
-
-private:
- void parse_args (int argc, char *argv[]);
- // Parse arguments
-
-private:
- int port_; // port to listen on
- int concurrency_; // 0 => pool, 1 => per request
- int dispatch_; // 0 => synch, 1 => asynch
- int nthreads_; // number of threads
- int maxthreads_; // maximum number of threads
- long flags_; // thread creation flags
-
- JAWS_Default_Dispatch_Policy policy_;
-};
-
-
-#endif /* !defined (JAWS_SERVER_H) */
diff --git a/apps/JAWS/PROTOTYPE/Makefile b/apps/JAWS/PROTOTYPE/Makefile
deleted file mode 100644
index 22004e63f9b..00000000000
--- a/apps/JAWS/PROTOTYPE/Makefile
+++ /dev/null
@@ -1,300 +0,0 @@
-# $Id$
-#----------------------------------------------------------------------------
-# %W% %G%
-#
-# Makefile for the ACE Adapter Web Server (JAWS) client
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = main
-
-FILES = HTTP_10 main
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(addsuffix .o,$(FILES))
-SHOBJ = $(addsuffix .so,$(FILES))
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-LDFLAGS += -L./JAWS
-LDLIBS = -lJAWS
-
-BUILD = $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/HTTP_10.o .obj/HTTP_10.so .shobj/HTTP_10.o .shobj/HTTP_10.so: HTTP_10.cpp HTTP_10.h JAWS/Data_Block.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- JAWS/JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Message_Queue.cpp \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp \
- JAWS/JAWS/JAWS/Pipeline_Handler.h JAWS/JAWS/JAWS/JAWS/Pipeline.h \
- JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.cpp \
- JAWS/JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.h JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i JAWS/IO_Handler.h \
- JAWS/Policy.h JAWS/JAWS/Concurrency.h JAWS/JAWS/JAWS/IO.h
-.obj/main.o .obj/main.so .shobj/main.o .shobj/main.so: main.cpp JAWS/Server.h JAWS/JAWS/Data_Block.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- JAWS/JAWS/JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Message_Queue.cpp \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp \
- JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.h \
- JAWS/JAWS/JAWS/JAWS/JAWS/Pipeline.h \
- JAWS/JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.cpp \
- JAWS/JAWS/JAWS/JAWS/JAWS/JAWS/Pipeline_Handler.h JAWS/JAWS/Policy.h \
- JAWS/JAWS/JAWS/Concurrency.h JAWS/JAWS/JAWS/JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i HTTP_10.h \
- JAWS/Data_Block.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS/PROTOTYPE/main.cpp b/apps/JAWS/PROTOTYPE/main.cpp
deleted file mode 100644
index 188342a8d5f..00000000000
--- a/apps/JAWS/PROTOTYPE/main.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// $Id$
-
-#include "JAWS/Server.h"
-#include "HTTP_10.h"
-
-int
-main (int argc, char *argv[])
-{
- JAWS_Server server (argc, argv);
- JAWS_HTTP_10_Read_Task HTTP_Read;
- JAWS_HTTP_10_Write_Task HTTP_Write;
-
- HTTP_Read.next (&HTTP_Write);
-
- if (server.open (&HTTP_Read) == -1)
- ACE_DEBUG ((LM_DEBUG, "JAWS: Error openning server\n"));
-
- return 0;
-}
diff --git a/apps/JAWS/README b/apps/JAWS/README
deleted file mode 100644
index e67da72afd1..00000000000
--- a/apps/JAWS/README
+++ /dev/null
@@ -1,15 +0,0 @@
-This directory contains the source code and test examples for JAWS,
-which is a high-performance HTTP Web server written with ACE. For
-more information on JAWS, please see
-
-http://www.cs.wustl.edu/~jxh/research/
-
-The subdirectories in this directory contain the following components
-
- . clients -- This contains the source code for various
- client applications that exercise the file uploading and
- downloading features of JAWS
-
- . server -- This contains the source code for the JAWS
- HTTP Web server. It illustrates a number of sophisticated
- ACE concurrency and event demultiplexing strategies.
diff --git a/apps/JAWS/clients/Blobby/Blob.cpp b/apps/JAWS/clients/Blobby/Blob.cpp
deleted file mode 100644
index 5dd7228932e..00000000000
--- a/apps/JAWS/clients/Blobby/Blob.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-// $Id$
-
-#include "Blob.h"
-#include "Blob_Handler.h"
-
-ACE_Blob::ACE_Blob (void)
-{
-}
-
-ACE_Blob::~ACE_Blob (void)
-{
- this->close ();
-}
-
-// initialize address and filename. No network i/o in open
-
-int
-ACE_Blob::open (char *filename, char *hostname , u_short port)
-{
- filename_ = ACE_OS::strdup(filename);
- inet_addr_.set (port, hostname);
- return 0;
-}
-
-
-// read from connection length bytes from offset, into Message block
-
-int
-ACE_Blob::read (ACE_Message_Block *mb, size_t length, size_t offset)
-{
-
- // Create a Blob Reader
- ACE_Blob_Reader blob_reader (mb, length, offset, filename_);
- ACE_Blob_Handler *brp = &blob_reader;
-
- // Connect to the server
- if (connector_.connect (brp, inet_addr_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Blob::read():Connector error"), -1);
-
- return blob_reader.byte_count ();
-
-}
-
-// write to connection length bytes from offset, into Message block
-
-int
-ACE_Blob::write (ACE_Message_Block *mb, size_t length, size_t offset)
-{
-
- // Create a Blob Writer
- ACE_Blob_Writer blob_writer (mb, length, offset, filename_);
- ACE_Blob_Handler *bwp = &blob_writer;
-
- // Connect to the server
- if (connector_.connect (bwp, inet_addr_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Blob::write():Connector error"), -1);
-
- return blob_writer.byte_count ();
-}
-
-// close down the blob
-
-int
-ACE_Blob::close (void)
-{
-
- if (filename_)
- {
- ACE_OS::free ((void *) filename_);
- filename_ = 0;
- }
- return 0;
-
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Connector<ACE_Blob_Handler, ACE_SOCK_CONNECTOR>;
-template class ACE_Svc_Tuple <ACE_Blob_Handler>;
-template class ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *>;
-template class ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Connector<ACE_Blob_Handler, ACE_SOCK_CONNECTOR>
-#pragma instantiate ACE_Svc_Tuple <ACE_Blob_Handler>
-#pragma instantiate ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple <ACE_Blob_Handler> *, ACE_SYNCH_RW_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/clients/Blobby/Blob.h b/apps/JAWS/clients/Blobby/Blob.h
deleted file mode 100644
index 7f7c79076ec..00000000000
--- a/apps/JAWS/clients/Blobby/Blob.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-//============================================================================
-//
-// = LIBRARY
-// JAWS
-//
-// = FILENAME
-// Blob.h
-//
-// = DESCRIPTION
-// This is the ACE_Blob class, which is the API for doing file
-// uploads/downloads.
-//
-// = AUTHOR
-// Prashant Jain and Sumedh Mungee
-//
-//============================================================================
-
-#if !defined (ACE_BLOB_H)
-#define ACE_BLOB_H
-
-#include "ace/OS.h"
-#include "ace/Connector.h"
-#include "ace/INET_Addr.h"
-#include "ace/Svc_Handler.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/Message_Block.h"
-#include "Blob_Handler.h"
-
-class ACE_Blob
- // = TITLE
- // Blob is intended to provide application API to
- // classes that wish to do network i/o at a very
- // high level of abstraction.
- //
- // = This class provides the ability to retrieve data from
- // the network, of specified length and offset, and potentially
- // use any protocol "under the hood" to do so. It currently
- // uses HTTP. See Blob_Handler also.
-{
-public:
- ACE_Blob (void);
- ~ACE_Blob (void);
-
- int open (char *filename,
- char *hostname = ACE_DEFAULT_SERVER_HOST ,
- u_short port = 80);
- // initializes the class with the given filename, hostname and port.
- // it should be called with the filename, before any read/write calls
-
-
- int read (ACE_Message_Block *mb, size_t length, size_t offset);
- // starts a connection, and reads a file from the server,
- // of length and offset as specified, into Message_Block mb
- // The message block should have capacity to hold length number
- // of bytes
-
- int write (ACE_Message_Block *mb, size_t length, size_t offset);
- // starts a connection, and writes a file to the server,
- // of length and offset as specified, from Message_Block mb
- // thus the message block should contain atleast length + offset
- // bytes of data
-
-
- int close ();
- // Frees memory allocated for filename.
-
-private:
- ACE_INET_Addr inet_addr_;
- // store the internet address of the server
-
- char *filename_;
- // The filename
-
- ACE_Connector<ACE_Blob_Handler, ACE_SOCK_CONNECTOR> connector_;
- // The connector endpoint to initiate the client connection
-
-};
-
-#endif /* ACE_BLOB_H */
diff --git a/apps/JAWS/clients/Blobby/Blob_Handler.cpp b/apps/JAWS/clients/Blobby/Blob_Handler.cpp
deleted file mode 100644
index 65951f54d5a..00000000000
--- a/apps/JAWS/clients/Blobby/Blob_Handler.cpp
+++ /dev/null
@@ -1,341 +0,0 @@
-// $Id$
-
-#include "Blob_Handler.h"
-
-// Empty constructor for compliance with new Connector behavior.
-ACE_Blob_Handler::ACE_Blob_Handler (void)
-{
-}
-
-// Always use this constructor
-ACE_Blob_Handler::ACE_Blob_Handler (ACE_Message_Block * mb,
- size_t length,
- size_t offset,
- char *filename) :
- mb_ (mb),
- length_ (length),
- offset_ (offset),
- filename_ (ACE_OS::strdup (filename)),
- bytecount_ (0)
-{
-}
-
-ACE_Blob_Handler::~ACE_Blob_Handler (void)
-{
- if (filename_)
- {
- ACE_OS::free ((void *) filename_);
- filename_ = 0;
- }
-}
-
-// Called by Connector after connection is established
-int
-ACE_Blob_Handler::open (void *)
-{
- if (this->send_request () != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Blob_Handler::open():send_request failed"), -1);
-
- if (this->receive_reply () != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Blob_Handler::open():receive_reply failed"), -1);
- return 0;
-
-}
-
-// No-op
-int
-ACE_Blob_Handler::close (u_long flags)
-{
- ACE_UNUSED_ARG (flags);
- return 0;
-}
-
-
-// Always overridden by the derived classes
-int
-ACE_Blob_Handler::send_request (void)
-{
- return -1;
-}
-
-// Always overridden by the derived classes
-int
-ACE_Blob_Handler::receive_reply (void)
-{
- return -1;
-}
-
-// used to retrieve the number of bytes read/written by the
-// last operation on the Blob
-int
-ACE_Blob_Handler::byte_count (void)
-{
- return bytecount_;
-}
-
-// Reader **************************************************
-
-ACE_Blob_Reader::ACE_Blob_Reader (ACE_Message_Block * mb,
- size_t length,
- size_t offset,
- char *filename,
- char *request_prefix,
- char *request_suffix) :
- ACE_Blob_Handler (mb, length, offset, filename),
- request_prefix_ (request_prefix),
- request_suffix_ (request_suffix)
-{
-}
-
-// Send the HTTP request
-int
-ACE_Blob_Reader::send_request (void)
-{
- char mesg [MAX_HEADER_SIZE];
-
- // Check to see if the request is too big
- if ( MAX_HEADER_SIZE < (strlen (request_prefix_) + strlen (filename_) + strlen (request_suffix_) + 4))
- ACE_ERROR_RETURN((LM_ERROR,"Request too large!"), -1);
-
- // Create a message to send to the server requesting retrieval of the file
- int len = ACE_OS::sprintf (mesg, "%s %s %s", request_prefix_, filename_, request_suffix_);
-
- // Send the message to server
- if (peer ().send_n (mesg, len) != len)
- ACE_ERROR_RETURN((LM_ERROR,"Error sending request"), -1);
-
-
- return 0;
-}
-
-// Recieve the HTTP Reply
-int
-ACE_Blob_Reader::receive_reply (void)
-{
- ssize_t len;
- char buf [MAX_HEADER_SIZE + 1];
- char *buf_ptr;
- int bytes_read = 0;
- int bytes_left = length_;
- int offset_left = offset_;
-
- // Receive the first MAX_HEADER_SIZE bytes to be able to strip off the
- // header. Note that we assume that the header will fit into the
- // first MAX_HEADER_SIZE bytes of the transmitted data.
- if ((len = peer ().recv_n (buf, MAX_HEADER_SIZE)) >= 0)
- {
- buf[len] = '\0';
-
- // Search for the header termination string "\r\n\r\n", or "\n\n". If
- // found, move past it to get to the data portion.
- if ((buf_ptr = ACE_OS::strstr (buf,"\r\n\r\n")) != 0)
- buf_ptr += 4;
- else if ((buf_ptr = ACE_OS::strstr (buf, "\n\n")) != 0)
- buf_ptr += 2;
- else
- buf_ptr = buf;
-
- // Determine number of data bytes read. This is equal to the
- // total butes read minus number of header bytes.
- bytes_read = (buf + len) - buf_ptr;
- }
- else
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Blob_Reader::receiveReply():Error while reading header"), -1);
-
- // ***************************************************************
- // At this point, we have stripped off the header and are ready to
- // process data. buf_ptr points to the data
-
- // First adjust for offset. There are two cases:
- // (1) The first block of data encountered the offset. In this case
- // we simply increment the buf_ptr by offset.
- // (2) The first block of data did not encounter the offset. That
- // is, the offset needs to go past the number of data bytes already read.
- if (bytes_read > offset_left)
- {
- // The first case is true -- that is offset is less than the
- // data bytes we just read.
- buf_ptr += offset_left;
-
- // Determine how many data bytes are actually there. This is
- // basically the total number of data bytes we read minus any
- // offset we have.
- int data_bytes = bytes_read - offset_left;
-
- // Check for the case where the bytes read are enough to fulfill
- // our request (for length bytes). If this is the case, then we
- // don't need to do any extra recvs and can simply return with
- // the data.
- if (data_bytes >= bytes_left)
- {
- // The first block contains enough data to satisfy the
- // length. So copy the data into the message buffer.
- if (mb_->copy (buf_ptr, bytes_left) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
- "ACE Blob_Reader::receiveReply():Error copying data into Message_Block"), -1);
- bytecount_ = length_;
- return 0;
- }
-
- // Copy over all the data bytes into our message buffer.
- if (mb_->copy (buf_ptr, data_bytes) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
- "ACE_Blob_Reader::receiveReply():Error copying data into Message_Block" ), -1);
-
- // Adjust bytes left
- bytes_left -= data_bytes;
-
- // No more offset left. So set it to zero.
- offset_left = 0;
- }
- else
- {
- // The second case is true -- that is offset is greater than
- // the data bytes we just read.
- offset_left -= bytes_read;
- }
-
- // If we had any offset left, take care of that.
- while (offset_left > 0)
- {
- // MAX_HEADER_SIZE in which case we should do a receive of
- // offset bytes into a temporary buffer. Otherwise, we should
- // receive MAX_HEADER_SIZE bytes into temporary buffer and
- // decrement offset_left.
- if (offset_left < (int) (sizeof buf))
- len = offset_left;
- else
- len = sizeof buf;
- if (peer().recv_n (buf, len) != len)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
- "ACE_Blob_Reader::receiveReply():Read error" ),
- -1);
- offset_left -= len;
- }
-
- // *****************************************************************
- // At this point we are all set to receive the actual data which the
- // user wants. We have made adjustments for offset and are ready to
- // receive the actual data. Receive the data directly into the
- // message buffer.
-
- len = peer().recv_n (mb_->wr_ptr (), bytes_left);
-
- if (len != bytes_left)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
- "ACE_Blob_Reader::receiveReply():Read error" ), -1);
-
- // Adjust the message buffer write pointer by number of bytes we
- // received.
- mb_->wr_ptr (len);
-
- // Set the byte count to number of bytes received
- this->bytecount_ = length_;
-
- return 0;
-}
-
-// Writer **************************************************
-
-ACE_Blob_Writer::ACE_Blob_Writer (ACE_Message_Block * mb,
- size_t length,
- size_t offset,
- char *filename,
- char *request_prefix,
- char *request_suffix) :
- ACE_Blob_Handler (mb, length, offset, filename),
- request_prefix_ (request_prefix),
- request_suffix_ (request_suffix)
-{
-}
-
-int
-ACE_Blob_Writer::send_request (void)
-{
- // Check for sanity -- check if we have any data to send.
- if (offset_+ length_ > mb_->length ())
- ACE_ERROR_RETURN((LM_ERROR, "%p\n",
- "ACE_Blob_Writer::sendRequest():Invalid offset/length"), -1);
-
- // Determine the length of the header message we will be sending to
- // the server. Note that we add 32 for safety -- this corresponds to
- // the number of bytes needed for the length field.
- u_short mesglen =
- ACE_OS::strlen (request_prefix_)
- + ACE_OS::strlen (filename_)
- + ACE_OS::strlen (request_suffix_)
- + 32; // safety
-
- // Allocate a buffer to hold the header
- char *mesg;
- ACE_NEW_RETURN (mesg, char [mesglen], -1);
-
- // Create the header, store the actual length in mesglen
- mesglen = ACE_OS::sprintf (mesg, "%s /%s %s %d\n\n",
- request_prefix_, filename_, request_suffix_, length_);
-
- // Send the header followed by the data
-
- // First send the header
- if (peer ().send_n (mesg, mesglen) == -1)
- ACE_ERROR_RETURN((LM_ERROR, "%p\n", "Error sending request"), -1);
-
- // "Consume" the offset by moving the read pointer of the message
- // buffer
- mb_->rd_ptr (offset_);
-
- // Now send the data
- if (peer ().send_n (mb_->rd_ptr (), length_) != (int)length_)
- ACE_ERROR_RETURN((LM_ERROR, "%p\n", "Error sending file"), -1);
-
- // Adjust the read pointer of the mesage buffer
- mb_->rd_ptr (length_);
-
- return 0;
-}
-
-int
-ACE_Blob_Writer::receive_reply (void)
-{
- // Allocate a buffer big enough to hold the header
- char buf[MAX_HEADER_SIZE];
-
- // Receive the reply from the server
- ssize_t len = peer ().recv_n (buf, sizeof buf - 1); // reserve one byte to store the \0
- if (len ==-1)
- ACE_ERROR_RETURN((LM_ERROR, "%p\n", "Error reading header"), -1);
-
- buf [len] = 0;
-
- // Parse the header
- char *lasts;
-
- // First check if this was a valid header -- HTTP/1.0
- char *token = ACE_OS::strtok_r (buf, " \t", &lasts);
-
- if ( (token == 0) || (ACE_OS::strcasecmp (token, "HTTP/1.0") != 0))
- ACE_ERROR_RETURN((LM_ERROR, "%p\n", "Did not receive a HTTP/1.0 response"), -1);
-
- // Get the return code.
- int return_code = ACE_OS::atoi (ACE_OS::strtok_r (0, " \t", &lasts));
-
- // Check if the transaction succeeded. The only success codes are in
- // the range of 200-299 (HTTP specification).
- if (return_code >= 200 && return_code < 300)
- return 0;
- else
- {
- // Something went wrong!
- // Get the description from the header message of what went wrong.
- char *description = ACE_OS::strtok_r (0, "\n\r", &lasts);
- ACE_ERROR_RETURN((LM_ERROR, "%p\n", description), -1);
- }
- ACE_NOTREACHED(return 0);
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
diff --git a/apps/JAWS/clients/Blobby/Blob_Handler.h b/apps/JAWS/clients/Blobby/Blob_Handler.h
deleted file mode 100644
index d58202afe5a..00000000000
--- a/apps/JAWS/clients/Blobby/Blob_Handler.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-//============================================================================
-//
-// = LIBRARY
-// JAWS
-//
-// = FILENAME
-// Blob.h
-//
-// = DESCRIPTION
-// ACE_Blob_Handler is a base class for ACE_Blob_Reader and
-// ACE_Blob_Writer which are created in response to calls to
-// read/write, as appropriate
-//
-// = AUTHOR
-// Prashant Jain and Sumedh Mungee
-//
-//============================================================================
-
-#if !defined (ACE_BLOB_HANDLER_H)
-#define ACE_BLOB_HANDLER_H
-
-#include "ace/OS.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Svc_Handler.h"
-#include "ace/Message_Block.h"
-
-class ACE_Blob_Handler : public ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH>
- // = TITLE
- // Blob is intended to provide application API to
- // classes that wish to do network i/o at a very
- // high level of abstraction.
- //
- // = This class provides the ability to retrieve data from
- // the network, of specified length and offset, and potentially
- // use any protocol "under the hood" to do so. It currently
- // uses HTTP. See Blob_Handler also.
-{
-public:
- ACE_Blob_Handler (void);
- // Null constructor, insures that it works properly with Connector
-
- ACE_Blob_Handler (ACE_Message_Block *mb, size_t length, size_t offset, char *filename);
- // Always use this constructor to make Blob_Handlers
-
- int byte_count (void);
- // returns the number of bytes read/written in the last operation.
-
- virtual int open (void * = 0);
- // Activate this instance of the <ACE_Blob_Handler>
-
- virtual int close (u_long flags = 0);
- // Close down the Blob
-
- ~ACE_Blob_Handler (void);
-
-protected:
- virtual int send_request (void);
- virtual int receive_reply (void);
-
- ACE_Message_Block *mb_;
- size_t length_;
- size_t offset_;
- char *filename_;
- int bytecount_;
- enum
- {
- MAX_HEADER_SIZE = 2048
- // The handler assumes that the first 2048 bytes of a server response
- // contains the header
- };
-};
-
-class ACE_Blob_Reader : public ACE_Blob_Handler
-{
-public:
- ACE_Blob_Reader (ACE_Message_Block *mb,
- size_t length,
- size_t offset,
- char *filename,
- char *request_prefix = "GET",
- char *request_suffix = "HTTP/1.0\r\n\r\n");
-
-private:
- int send_request (void);
- int receive_reply (void);
- const char *request_prefix_;
- const char *request_suffix_;
-};
-
-class ACE_Blob_Writer : public ACE_Blob_Handler
-{
-public:
- ACE_Blob_Writer (ACE_Message_Block *mb,
- size_t length,
- size_t offset,
- char *filename,
- char *request_prefix = "PUT",
- char *request_suffix = "HTTP/1.0\nContent-length:");
-
-private:
- int send_request (void);
- int receive_reply (void);
- const char *request_prefix_;
- const char *request_suffix_;
-};
-
-#endif /* ACE_BLOB_HANDLER_H */
diff --git a/apps/JAWS/clients/Blobby/Makefile b/apps/JAWS/clients/Blobby/Makefile
deleted file mode 100644
index b6e091b909d..00000000000
--- a/apps/JAWS/clients/Blobby/Makefile
+++ /dev/null
@@ -1,346 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE Adapter Web Server (JAWS) client
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = blobby
-
-FILES = Blob \
- Blob_Handler \
- Options
-
-SRC = $(addsuffix .cpp,$(FILES))
-OBJ = $(addsuffix .o,$(FILES))
-
-BUILD = $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/Blob.o .obj/Blob.so .shobj/Blob.o .shobj/Blob.so: Blob.cpp Blob.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Blob_Handler.h
-.obj/Blob_Handler.o .obj/Blob_Handler.so .shobj/Blob_Handler.o .shobj/Blob_Handler.so: Blob_Handler.cpp Blob_Handler.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Svc_Handler.i
-.obj/Options.o .obj/Options.so .shobj/Options.o .shobj/Options.so: Options.cpp Blob.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- Blob_Handler.h \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/ARGV.h \
- $(ACE_ROOT)/ace/ARGV.i Options.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS/clients/Blobby/Options.cpp b/apps/JAWS/clients/Blobby/Options.cpp
deleted file mode 100644
index 0f2fa8a145e..00000000000
--- a/apps/JAWS/clients/Blobby/Options.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-// $Id$
-
-#include "Blob.h"
-#include "Blob_Handler.h"
-#include "ace/Get_Opt.h"
-#include "ace/ARGV.h"
-#include "Options.h"
-
-Options *Options::instance_ = 0;
-
-Options *
-Options::instance (void)
-{
-
- if (Options::instance_ == 0)
- Options::instance_ = new Options;
-
- return Options::instance_;
-}
-
-void
-Options::parse_args (int argc, char *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "rwh:p:f:l:o:d");
-
- int c;
-
- while ((c = get_opt ()) != -1)
- switch (c)
- {
- case 'd':
- this->debug_ = 1;
- break;
- case 'r':
- this->operation_ = 'r';
- break;
- case 'w':
- this->operation_ = 'w';
- break;
- case 'h':
- this->hostname_ = get_opt.optarg;
- break;
- case 'p':
- this->port_ = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'f':
- this->filename_ = get_opt.optarg;
- break;
- case 'l':
- this->length_ = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'o':
- this->offset_ = ACE_OS::atoi (get_opt.optarg);
- break;
- // Usage fallthrough.
- default:
- ACE_DEBUG ((LM_DEBUG, "%s -h hostname -f filename -[r/w] [-p port] [-l length] [-o offset] [-d]\n", argv[0]));
- ACE_OS::exit (1);
- }
- if (this->hostname_ == 0 || this->filename_ == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "%s -h hostname -f filename -[r/w] [-p port] [-l length] [-o offset] [-d]\n",
- argv[0]));
- ACE_OS::exit (1);
- }
-
-}
-
-Options::Options (void)
- : hostname_ (0),
- port_ (ACE_DEFAULT_HTTP_SERVER_PORT),
- filename_ (0),
- length_ (0),
- offset_ (0),
- operation_ ('r'),
- debug_ (0)
-{
-}
diff --git a/apps/JAWS/clients/Blobby/Options.h b/apps/JAWS/clients/Blobby/Options.h
deleted file mode 100644
index 086fa003a37..00000000000
--- a/apps/JAWS/clients/Blobby/Options.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-//============================================================================
-//
-// = LIBRARY
-// JAWS
-//
-// = FILENAME
-// Options.h
-//
-// = DESCRIPTION
-// Options is an Singleton for blobby
-//
-// = AUTHOR
-// Prashant Jain and Sumedh Mungee
-//
-//============================================================================
-
-#if !defined (ACE_BLOBBY_OPTIONS_H)
-#define ACE_BLOBBY_OPTIONS_H
-
-#include "Blob.h"
-#include "Blob_Handler.h"
-#include "ace/Get_Opt.h"
-#include "ace/ARGV.h"
-
-class Options
-{
-public:
- static Options *instance (void);
- // Returns the singleton instance
-
- void parse_args (int argc, char *argv[]);
- // parses commandline arguments
-
- char *hostname_;
- // Hostname to connect to
-
- u_short port_;
- // Port number to use
-
- char *filename_;
- // Filename to upload/download
-
- int length_;
- // number of bytes to read/write
-
- int offset_;
- // offset to read/write
-
- char operation_;
- // "r" means download (read), and "w" means upload (write).
-
- int debug_;
- // turns on verbosity
-
-protected:
- Options (void);
- // protected constructor, singleton
-
- static Options *instance_;
- // the singleton
-};
-
-#endif /* ACE_BLOBBY_OPTIONS_H */
diff --git a/apps/JAWS/clients/Blobby/README b/apps/JAWS/clients/Blobby/README
deleted file mode 100644
index 1a1cadf91ca..00000000000
--- a/apps/JAWS/clients/Blobby/README
+++ /dev/null
@@ -1,33 +0,0 @@
-README for blobby, the example application for JAWS
----------------------------------------------------
-
-Blobby is a simple application written using the ACE_Blob class, which
-is capable of doing both file uploads and downloads from the JAWS
-server.
-
-If a file is downloaded, the downloaded data is sent to standard
-output, so that it can be piped as necessary.
-
-It is an ACE application, and should be compiled exactly like any
-other ACE application.
-
-It accepts the following command line arguments:
-
-
- -r Read (download) the file from the server
- -w Write (upload) the file to the server
- (Default is Read file)
-
- -h hostname Use the server running on hostname
- (Default is localhost)
-
- -p port Port number of the server
- (Default is 80)
-
- -f filename The file to upload/download from the server
-
- -l length The number of bytes to read/write from the server
- -o offset The offset into the file to be read/written
-
- -d Puts blobby into debug mode, where it echoes
- its command line arguments
diff --git a/apps/JAWS/clients/Blobby/blobby.cpp b/apps/JAWS/clients/Blobby/blobby.cpp
deleted file mode 100644
index 20a2e1b8e98..00000000000
--- a/apps/JAWS/clients/Blobby/blobby.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-//============================================================================
-//
-// = LIBRARY
-// JAWS
-//
-// = FILENAME
-// blobby.c
-//
-// = DESCRIPTION
-// Simple client application to illustrate the use of the ACE_Blob class
-//
-// It reads "length" number of bytes, after skipping offset "offset"
-// from hostname, port and filename as specified. (if -r specified)
-//
-// It writes "length" number of bytes, after skipping offset "offset"
-// to hostname, port and filename as specified (if -w specified)
-//
-// = AUTHOR
-// Prashant Jain and Sumedh Mungee
-//
-//============================================================================
-
-#include "Options.h"
-
-int
-main (int argc, char *argv[])
-{
- // Options is a singleton
- Options *options = Options::instance ();
- options->parse_args (argc, argv);
-
- // Explain what is going to happen
- if (options->debug_)
- ACE_DEBUG ((LM_DEBUG,
- "hostname = %s, port = %d, filename = %s, length = %d, offset = %d, operation = %c\n",
- options->hostname_,
- options->port_,
- options->filename_,
- options->length_,
- options->offset_,
- options->operation_));
-
- // Create a blob
- ACE_Blob blob;
-
- // User requested a read
- if (options->operation_ == 'r')
- {
- ACE_Message_Block mb (0, options->length_);
-
- // Open the blob
- if (blob.open (options->filename_, options->hostname_, options->port_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open error"), -1);
-
- // Read from it
- if (blob.read (&mb, options->length_, options->offset_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "read error"), -1);
-
- // Write to STDOUT
- if (ACE_OS::write (ACE_STDOUT, mb.rd_ptr(), mb.length()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "write error"), -1);
- }
- else
- {
- int total = options->length_ + options->offset_;
- ACE_Message_Block mb (total);
-
- // Open the file to be sent
- ACE_HANDLE h = ACE_OS::open (options->filename_, O_RDONLY);
- if (h == ACE_INVALID_HANDLE)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "file open error"), -1);
-
- // Open the blob
- if (blob.open (options->filename_, options->hostname_, options->port_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "connection open error"), -1);
-
- // Read from the file
- if (ACE_OS::read (h, mb.wr_ptr (), total) != total)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "file read error"), -1);
-
- // Close the file
- ACE_OS::close (h);
-
- // Adjust the offset
- mb.wr_ptr (mb.size ());
-
- // Write to the blob
- if (blob.write (&mb, options->length_, options->offset_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "network write error"), -1);
- }
-
- blob.close ();
- return 0;
-}
diff --git a/apps/JAWS/clients/Blobby/blobby.mak b/apps/JAWS/clients/Blobby/blobby.mak
deleted file mode 100644
index 471c428c2d5..00000000000
--- a/apps/JAWS/clients/Blobby/blobby.mak
+++ /dev/null
@@ -1,958 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-!IF "$(CFG)" == ""
-CFG=blobby - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to blobby - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "blobby - Win32 Release" && "$(CFG)" != "blobby - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "blobby.mak" CFG="blobby - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "blobby - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "blobby - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "blobby - Win32 Debug"
-RSC=rc.exe
-CPP=cl.exe
-
-!IF "$(CFG)" == "blobby - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-OUTDIR=.\.
-INTDIR=.\Release
-
-ALL : "$(OUTDIR)\blobby.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\Blob.obj"
- -@erase "$(INTDIR)\Blob_Handler.obj"
- -@erase "$(INTDIR)\blobby.obj"
- -@erase "$(INTDIR)\blobby_options.obj"
- -@erase "$(OUTDIR)\blobby.exe"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE"\
- /Fp"$(INTDIR)/blobby.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\Release/
-CPP_SBRS=.\.
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/blobby.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-LINK32_FLAGS=ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no\
- /pdb:"$(OUTDIR)/blobby.pdb" /machine:I386 /out:"$(OUTDIR)/blobby.exe"
-LINK32_OBJS= \
- "$(INTDIR)\Blob.obj" \
- "$(INTDIR)\Blob_Handler.obj" \
- "$(INTDIR)\blobby.obj" \
- "$(INTDIR)\blobby_options.obj"
-
-"$(OUTDIR)\blobby.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "blobby - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-OUTDIR=.\.
-INTDIR=.\Debug
-
-ALL : "$(OUTDIR)\blobby.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\Blob.obj"
- -@erase "$(INTDIR)\Blob_Handler.obj"
- -@erase "$(INTDIR)\blobby.obj"
- -@erase "$(INTDIR)\blobby_options.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\blobby.exe"
- -@erase "$(OUTDIR)\blobby.ilk"
- -@erase "$(OUTDIR)\blobby.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE"\
- /Fp"$(INTDIR)/blobby.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\Debug/
-CPP_SBRS=.\.
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/blobby.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-LINK32_FLAGS=aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/blobby.pdb" /debug /machine:I386 /out:"$(OUTDIR)/blobby.exe"
-LINK32_OBJS= \
- "$(INTDIR)\Blob.obj" \
- "$(INTDIR)\Blob_Handler.obj" \
- "$(INTDIR)\blobby.obj" \
- "$(INTDIR)\blobby_options.obj"
-
-"$(OUTDIR)\blobby.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-################################################################################
-# Begin Target
-
-# Name "blobby - Win32 Release"
-# Name "blobby - Win32 Debug"
-
-!IF "$(CFG)" == "blobby - Win32 Release"
-
-!ELSEIF "$(CFG)" == "blobby - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=.\blobby.cpp
-DEP_CPP_BLOBB=\
- "..\..\..\..\ace\config-win32.h"\
- ".\Blob.h"\
- ".\Blob_Handler.h"\
- ".\Options.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\ARGV.h"\
- {$(INCLUDE)}"\ace\ARGV.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Get_Opt.h"\
- {$(INCLUDE)}"\ace\Get_Opt.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\blobby.obj" : $(SOURCE) $(DEP_CPP_BLOBB) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Blob_Handler.cpp
-
-!IF "$(CFG)" == "blobby - Win32 Release"
-
-DEP_CPP_BLOB_=\
- "..\..\..\..\ace\config-win32.h"\
- ".\Blob_Handler.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\Blob_Handler.obj" : $(SOURCE) $(DEP_CPP_BLOB_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "blobby - Win32 Debug"
-
-DEP_CPP_BLOB_=\
- "..\..\..\..\ace\config-win32.h"\
- ".\Blob_Handler.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\Blob_Handler.obj" : $(SOURCE) $(DEP_CPP_BLOB_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Blob.cpp
-DEP_CPP_BLOB_C=\
- "..\..\..\..\ace\config-win32.h"\
- ".\Blob.h"\
- ".\Blob_Handler.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\Blob.obj" : $(SOURCE) $(DEP_CPP_BLOB_C) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\blobby_options.cpp
-DEP_CPP_BLOBBY=\
- ".\ace\Set.cpp"\
- ".\ace\Set.h"\
- ".\ace\Set.i"\
- ".\ace\Stack.cpp"\
- ".\ace\Stack.h"\
- ".\ace\Stack.i"\
- ".\Blob.h"\
- ".\Blob_Handler.h"\
- ".\blobby_options.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\ARGV.h"\
- {$(INCLUDE)}"\ace\ARGV.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Get_Opt.h"\
- {$(INCLUDE)}"\ace\Get_Opt.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\blobby_options.obj" : $(SOURCE) $(DEP_CPP_BLOBBY) "$(INTDIR)"
-
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/apps/JAWS/clients/Blobby/blobby.mdp b/apps/JAWS/clients/Blobby/blobby.mdp
deleted file mode 100644
index 3c538fcbc15..00000000000
--- a/apps/JAWS/clients/Blobby/blobby.mdp
+++ /dev/null
Binary files differ
diff --git a/apps/JAWS/clients/Caching/Caching.mak b/apps/JAWS/clients/Caching/Caching.mak
deleted file mode 100644
index 460dfab5a3d..00000000000
--- a/apps/JAWS/clients/Caching/Caching.mak
+++ /dev/null
@@ -1,824 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-!IF "$(CFG)" == ""
-CFG=testing - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to testing - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "http_client - Win32 Release" && "$(CFG)" !=\
- "http_client - Win32 Debug" && "$(CFG)" != "testing - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Caching.mak" CFG="testing - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "http_client - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "http_client - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "testing - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "testing - Win32 Debug"
-
-!IF "$(CFG)" == "http_client - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "http_client\Release"
-# PROP BASE Intermediate_Dir "http_client\Release"
-# PROP BASE Target_Dir "http_client"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Release"
-# PROP Target_Dir "http_client"
-OUTDIR=.\.
-INTDIR=.\Release
-
-ALL : "$(OUTDIR)\http_client.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\http_client.obj"
- -@erase "$(INTDIR)\http_handler.obj"
- -@erase "$(OUTDIR)\http_client.exe"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE"\
- /Fp"$(INTDIR)/http_client.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\.\Release/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/http_client.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-LINK32_FLAGS=ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no\
- /pdb:"$(OUTDIR)/http_client.pdb" /machine:I386 /out:"$(OUTDIR)/http_client.exe"\
-
-LINK32_OBJS= \
- "$(INTDIR)\http_client.obj" \
- "$(INTDIR)\http_handler.obj"
-
-"$(OUTDIR)\http_client.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "http_client - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "http_client\Debug"
-# PROP BASE Intermediate_Dir "http_client\Debug"
-# PROP BASE Target_Dir "http_client"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Debug"
-# PROP Target_Dir "http_client"
-OUTDIR=.\.
-INTDIR=.\Debug
-
-ALL : "$(OUTDIR)\http_client.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\http_client.obj"
- -@erase "$(INTDIR)\http_handler.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\http_client.exe"
- -@erase "$(OUTDIR)\http_client.ilk"
- -@erase "$(OUTDIR)\http_client.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE"\
- /Fp"$(INTDIR)/http_client.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\.\Debug/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/http_client.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-LINK32_FLAGS=aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/http_client.pdb" /debug /machine:I386\
- /out:"$(OUTDIR)/http_client.exe"
-LINK32_OBJS= \
- "$(INTDIR)\http_client.obj" \
- "$(INTDIR)\http_handler.obj"
-
-"$(OUTDIR)\http_client.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "testing - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "testing\Debug"
-# PROP BASE Intermediate_Dir "testing\Debug"
-# PROP BASE Target_Dir "testing"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Debug"
-# PROP Target_Dir "testing"
-OUTDIR=.\.
-INTDIR=.\Debug
-
-ALL : "$(OUTDIR)\testing.dll"
-
-CLEAN :
- -@erase "$(INTDIR)\ID_Generator.obj"
- -@erase "$(INTDIR)\Local_Locator.obj"
- -@erase "$(INTDIR)\URL_Locator.obj"
- -@erase "$(INTDIR)\URL_Properties.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\testing.dll"
- -@erase "$(OUTDIR)\testing.exp"
- -@erase "$(OUTDIR)\testing.ilk"
- -@erase "$(OUTDIR)\testing.lib"
- -@erase "$(OUTDIR)\testing.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS"\
- /Fp"$(INTDIR)/testing.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\.\Debug/
-CPP_SBRS=.\.
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-MTL=mktyplib.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/testing.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-LINK32_FLAGS=aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:yes\
- /pdb:"$(OUTDIR)/testing.pdb" /debug /machine:I386 /out:"$(OUTDIR)/testing.dll"\
- /implib:"$(OUTDIR)/testing.lib"
-LINK32_OBJS= \
- "$(INTDIR)\ID_Generator.obj" \
- "$(INTDIR)\Local_Locator.obj" \
- "$(INTDIR)\URL_Locator.obj" \
- "$(INTDIR)\URL_Properties.obj"
-
-"$(OUTDIR)\testing.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-################################################################################
-# Begin Target
-
-# Name "http_client - Win32 Release"
-# Name "http_client - Win32 Debug"
-
-!IF "$(CFG)" == "http_client - Win32 Release"
-
-!ELSEIF "$(CFG)" == "http_client - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=.\http_handler.cpp
-DEP_CPP_HTTP_=\
- "..\..\..\..\ace\config-win32.h"\
- ".\http_handler.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Filecache.h"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\http_handler.obj" : $(SOURCE) $(DEP_CPP_HTTP_) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\http_client.cpp
-DEP_CPP_HTTP_C=\
- "..\..\..\..\ace\config-win32.h"\
- ".\http_handler.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Connector.cpp"\
- {$(INCLUDE)}"\ace\Connector.h"\
- {$(INCLUDE)}"\ace\Connector.i"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\http_client.obj" : $(SOURCE) $(DEP_CPP_HTTP_C) "$(INTDIR)"
-
-
-# End Source File
-# End Target
-################################################################################
-# Begin Target
-
-# Name "testing - Win32 Debug"
-################################################################################
-# Begin Source File
-
-SOURCE=.\URL_Properties.cpp
-DEP_CPP_URL_P=\
- "..\..\..\..\ace\config-win32.h"\
- ".\URL_Array_Helper.cpp"\
- ".\URL_Array_Helper.h"\
- ".\URL_Properties.h"\
- ".\URL_Properties.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Array.cpp"\
- {$(INCLUDE)}"\ace\Array.h"\
- {$(INCLUDE)}"\ace\Array.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\URL_Properties.obj" : $(SOURCE) $(DEP_CPP_URL_P) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Local_Locator.cpp
-DEP_CPP_LOCAL=\
- "..\..\..\..\ace\config-win32.h"\
- ".\ID_Generator.h"\
- ".\Local_Locator.h"\
- ".\Local_Locator.i"\
- ".\URL_Locator.h"\
- ".\URL_Locator.i"\
- ".\URL_Properties.h"\
- ".\URL_Properties.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Array.cpp"\
- {$(INCLUDE)}"\ace\Array.h"\
- {$(INCLUDE)}"\ace\Array.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\Local_Locator.obj" : $(SOURCE) $(DEP_CPP_LOCAL) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\URL_Locator.cpp
-DEP_CPP_URL_L=\
- "..\..\..\..\ace\config-win32.h"\
- ".\URL_Locator.h"\
- ".\URL_Locator.i"\
- ".\URL_Properties.h"\
- ".\URL_Properties.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Array.cpp"\
- {$(INCLUDE)}"\ace\Array.h"\
- {$(INCLUDE)}"\ace\Array.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\URL_Locator.obj" : $(SOURCE) $(DEP_CPP_URL_L) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\ID_Generator.cpp
-DEP_CPP_ID_GE=\
- "..\..\..\..\ace\config-win32.h"\
- ".\ID_Generator.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\ID_Generator.obj" : $(SOURCE) $(DEP_CPP_ID_GE) "$(INTDIR)"
-
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/apps/JAWS/clients/Caching/Caching.mdp b/apps/JAWS/clients/Caching/Caching.mdp
deleted file mode 100644
index 979b459d95b..00000000000
--- a/apps/JAWS/clients/Caching/Caching.mdp
+++ /dev/null
Binary files differ
diff --git a/apps/JAWS/clients/Caching/ID_Generator.cpp b/apps/JAWS/clients/Caching/ID_Generator.cpp
deleted file mode 100644
index dc906c95a9e..00000000000
--- a/apps/JAWS/clients/Caching/ID_Generator.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-// $Id$
-
-#if !defined (ACE_ID_GENERATOR_C)
-#define ACE_ID_GENERATOR_C
-
-#include "ID_Generator.h"
-#include "ace/Object_Manager.h"
-
-time_t ACE_ID_Generator::last_time_ = 0;
-
-size_t ACE_ID_Generator::last_number_ = 0;
-
-ACE_SYNCH_MUTEX *ACE_ID_Generator::lock_ = 0;
-
-char *
-ACE_ID_Generator::get_new_id (char *id)
-{
- time_t t;
- size_t sn;
-
- ACE_ID_Generator::get_serial_id (t, sn);
- ACE_NEW_RETURN (id, char [ACE_OFFER_ID_LENGTH], 0);
-
- ACE_OS::sprintf (id, "%014d%06d", t, sn);
- return id;
-}
-
-void
-ACE_ID_Generator::get_serial_id (time_t &t, size_t &s)
-{
- ACE_MT (ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, *ACE_ID_Generator::get_lock ()));
- ACE_OS::time (&t);
-
- if (t != ACE_ID_Generator::last_time_)
- {
- ACE_ID_Generator::last_time_ = t;
- s = ACE_ID_Generator::last_number_ = 0;
- }
- else
- s = ACE_ID_Generator::last_number_++;
-}
-
-ACE_SYNCH_MUTEX *
-ACE_ID_Generator::get_lock (void)
-{
-#if defined (ACE_HAS_THREADS)
- if (ACE_ID_Generator::lock_ == 0)
- {
- ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, *ACE_Static_Object_Lock::instance (), 0));
-
- // Double-checked Locking Optimization.
- if (ACE_ID_Generator::lock_ == 0)
- ACE_NEW_RETURN (ACE_ID_Generator::lock_, ACE_SYNCH_MUTEX, 0);
- }
-#endif /* ACE_HAS_THREADS */
- return ACE_ID_Generator::lock_;
-}
-
-#endif /* ACE_ID_GENERATOR_C */
diff --git a/apps/JAWS/clients/Caching/ID_Generator.h b/apps/JAWS/clients/Caching/ID_Generator.h
deleted file mode 100644
index 0d73f72625c..00000000000
--- a/apps/JAWS/clients/Caching/ID_Generator.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// ID_Generator.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-#if !defined (ACE_ID_GENERATOR_H)
-#define ACE_ID_GENERATOR_h
-
-#include "ace/Synch.h"
-
-#define ACE_OFFER_ID_LENGTH 21
-
-class ACE_ID_Generator
- // = TITLE
- // An unique ID generator.
- //
- // = DESCRIPTION
-
- // Generate an offer ID according to current time and avoid
- // duplicate ID. It guarantees ID uniqueness within a process,
- // i.e. no two threads may get the same ID string. Using a
- // similar method like the backery algorithm.
-{
-public:
- static char *get_new_id (char *id);
- // allocate a new ID string and point <id> to it.
-
-private:
- static void get_serial_id (time_t &t, size_t &s);
- // Atomically get info required to generate an offer ID.
-
- static ACE_SYNCH_MUTEX *get_lock (void);
- // Get the lock instance.
-
- static time_t last_time_;
- // Record the time last offer ID generated.
-
- static size_t last_number_;
- // Record serial number of last offer ID with same
- // generation time.
-
- static ACE_SYNCH_MUTEX *lock_;
- // mutex to access private member.
-};
-
-#endif /* ACE_ID_GENERATOR_H */
diff --git a/apps/JAWS/clients/Caching/Local_Locator.cpp b/apps/JAWS/clients/Caching/Local_Locator.cpp
deleted file mode 100644
index 66b0bab31a4..00000000000
--- a/apps/JAWS/clients/Caching/Local_Locator.cpp
+++ /dev/null
@@ -1,258 +0,0 @@
-// $Id$
-
-#if !defined (ACE_LOCAL_LOCATOR_C)
-#define ACE_LOCAL_LOCATOR_C
-
-#include "Local_Locator.h"
-
-#if !defined (__ACE_INLINE__)
-#include "Local_Locator.i"
-#endif /* __ACE_INLINE__ */
-
-int
-ACE_URL_Local_Locator::url_query (const ACE_URL_Locator::ACE_Selection_Criteria how,
- const ACE_URL_Property_Seq *pseq,
- const size_t how_many,
- size_t &num_query,
- ACE_URL_Offer_Seq *offer)
-{
- ACE_URL_Record *item = 0;
-
- ACE_NEW_RETURN (offer, ACE_URL_Offer_Seq (how_many), -1);
-
- if (how >= ACE_URL_Locator::INVALID_SELECTION)
- {
- errno = ACE_URL_Locator::INVALID_ARGUMENT;
- return -1;
- }
-
- num_query = 0;
- for (ACE_Unbounded_Set_Iterator<ACE_URL_Record> iter (this->repository_);
- iter.next (item) != 0;
- iter.advance ())
- {
- size_t i_query;
- size_t i_db;
- int found = 0;
-
- // Now this is a stupid implementation. Perhaps we can implement this
- // using Hash_Map. Better yet, I think we should put this in a database
- // and put SQL query here.
- for (i_query = 0; found == 0 && i_query < pseq->size (); i_query++)
- for (i_db = 0; i_db < item->offer_->url_properties ().size (); i_db++)
- {
- if ((*pseq)[i_query].name () == item->offer_->url_properties ()[i_db].name ())
- if (how == ACE_URL_Locator::SOME)
- {
-
-
- }
-
- // if match and Some, copy to <offer>, inc <num_query>, advance iterator
-
- // else if All, advance iterator
-
- // else if None, check next property in <pseq>.
-
- if (all properties checked and found and ALL)
- copy to <offer>; inc <num_query>;
- else if (all properties checked and not found and NONE)
- copy to <offer>; inc <num_query>;
- else
- shouldn't happen, internal error
-
- if (num_query == how_many)
- break;
- }
-
- return 0;
-}
-
-int
-ACE_URL_Local_Locator::export_offer (ACE_URL_Offer *offer,
- ACE_WString &offer_id)
-{
- ACE_URL_Record *item = 0;
-
- // First check if we have registered this URL already.
- for (ACE_Unbounded_Set_Iterator<ACE_URL_Record> iter (this->repository_);
- iter.next (item) != 0;
- iter.advance ())
- if (*item->offer_->url () == *offer->url ())
- {
- errno = ACE_URL_Locator::OFFER_EXIST;
- return -1;
- }
-
- ACE_URL_Record *new_offer;
-
- // Offer is not in repository, we can add new one in safely.
- ACE_NEW_RETURN (new_offer, ACE_URL_Record (offer),
- ACE_URL_Locator::NOMEM);
-
- this->repository_.push (*new_offer);
-
- offer_id = *new_offer->id_;
- return 0;
-}
-
-int
-ACE_URL_Local_Locator::withdraw_offer (const ACE_WString &offer_id)
-{
- ACE_URL_Record *item = 0;
-
- // Iterate thru repository and remove offer with <offer_id>.
- for (ACE_Unbounded_Set_Iterator<ACE_URL_Record> iter (this->repository_);
- iter.next (item) != 0;
- iter.advance ())
- if (offer_id == *item->id_)
- {
- if (this->repository_.remove (*item) == 0)
- return 0
- else
- {
- errno = ACE_URL_Locator::UNKNOWN;
- return -1;
- }
- }
-
- errno = ACE_URL_Locator::NO_SUCH_OFFER;
- return 0;
-}
-
-int
-ACE_URL_Local_Locator::describe_offer (const ACE_WString &offer_id,
- ACE_URL_Offer *offer)
-{
- ACE_URL_Record *item = 0;
-
- // Iterate thru the repository and produce a copy of offer's
- // description.
- for (ACE_Unbounded_Set_Iterator<ACE_URL_Record> iter (this->repository_);
- iter.next (item) != 0;
- iter.advance ())
- if (offer_id == *item->id_)
- {
- ACE_NEW_RETURN (offer, ACE_URL_Offer (*item->offer_), -1);
- return 0;
- }
-
- errno = ACE_URL_Locator::NO_SUCH_OFFER;
- return -1;
-}
-
-int
-ACE_URL_Local_Locator::modify_offer (const ACE_WString &offer_id,
- const ACE_WString *url,
- const ACE_URL_Property_Seq *del,
- const ACE_URL_Property_Seq *modify)
-{
- ACE_Unbounded_Set_Iterator<ACE_URL_Record> iter (this->repository_);
- ACE_URL_Record *item = 0;
- ACE_URL_Record *target = 0;
-
- // Errno Checking
-
- for (; iter.next (item) != 0; iter.advance ())
- {
- if (url != 0 && *url == item->offer_->url ())
- {
- errno = ACE_URL_Locator::OFFER_EXIST;
- return -1;
- }
- if (offer_id == *item->id_)
- target = item;
- }
-
- if (target != 0) // Aha, we found a target to work on
- {
- if (del != 0 && modify != 0)
- {
- // We need to make a copy of the original property sequence
- // so if any error occurs, we can revert our change easily.
-
- // First we need to calculate the maximum number of perperties.
- int psize = target->offer_->url_properties ().size ();
- if (del != 0)
- if ((psize -= del->size ()) < 0)
- {
- // If you try to delete more properties than we have,
- // you are doomed. No need to proceed.
- errno = ACE_URL_Locator::INVALID_ARGUMENT;
- return -1;
- }
- if (modify != 0)
- // In the worst case, all properties in <modify> will be added.
- psize += modify->size ();
-
- // Now, create a temporary work space.
- ACE_URL_Property_Seq working (psize);
- size_t sz = 0;
- for (; sz < item->offer_->url_properties ().size ())
- working[sz] = item->offer_->url_properties() [sz];
-
- if (del != 0)
- {
- // Argh, this is really a stupid design.
- // Go thru every property we want to delete
- for (size_t i = 0; i < del->size () && sz > 0; i++)
- // For earch, go thru our property sequence and
- // search for the property.
- for (size_t j = 0; j < sz; j++)
- if ((*del)[i].name () == working[j].name ())
- {
- sz -= 1;
- working[j] = working[sz]; // pack the array.
- break;
- }
- // Doesn't generate error when we want to delete an
- // imaginary property. Is this appropriate?
- }
-
- if (modify != 0)
- {
- // This is also stupid.
- // Go thru every property we want to modify/add
- for (size_t i = 0; i < modify->size () && sz > 0; i++)
- {
- // For each property, go thru our property list
- // and search for the matching property
- for (size_t j = 0; j < sz; j++)
- if ((*modify)[i].name () == working[j].name ())
- {
- // A match found.
- working[j].value ((*modify)[i].value ().fast_rep ());
- break;
- }
-
- // No matching property name were found,
- // We want to add this property into the list.
- if (j == sz)
- working[sz++] = (*modify)[i];
- }
- }
- }
-
- // Yes, all operations passed. We can now copy the working version back.
- item->offer_->url_properties (ACE_URL_Property_Seq (sz));
- for (size_t i = 0; i < sz; i ++)
- item->offer_->url_properties ()[i] = working[i];
-
- if (url != 0)
- item->offer_->url (url->fast_rep ()); // replace URL location.
- return 0;
- }
- errno = ACE_URL_Locator::NO_SUCH_OFFER;
- return -1;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Unbounded_Set<ACE_URL_Record>;
-template class ACE_Unbounded_Set_Iterator<ACE_URL_Record>;
-template class ACE_Node<ACE_URL_Record>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Unbounded_Set<ACE_URL_Record>
-#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_URL_Record>
-#pragma instantiate ACE_Node<ACE_URL_Record>
-#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-#endif /* ACE_LOCAL_LOCATOR_C */
diff --git a/apps/JAWS/clients/Caching/Local_Locator.h b/apps/JAWS/clients/Caching/Local_Locator.h
deleted file mode 100644
index aa6c73decf6..00000000000
--- a/apps/JAWS/clients/Caching/Local_Locator.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// Local_Locator.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-#if !defined (ACE_LOCAL_LOCATOR_H)
-#define ACE_LOCAL_LOCATOR_H
-
-#include "URL_Locator.h"
-#include "ace/Containers.h"
-#include "ID_Generator.h"
-
-class ACE_SVC_Export ACE_URL_Record
- // = TITLE
- // A URL Record.
- //
- // = DESCRIPTION
- // A record placed in URL repository. Notice that
- // both member pointers are own by URL_Record.
- // They will get deallocated when the object goes
- // out of scope.
-{
- friend class ACE_URL_Local_Locator;
- friend class ACE_Node<ACE_URL_Record>;
- // We are making ACE_Node as friend class because we don't want
- // others to access default constructor and pushing in an invalid
- // record. However, container classes need to use default constructor
- // for its head record.
-public:
- ACE_URL_Record (ACE_URL_Offer *offer);
- // ctor.
-
- ~ACE_URL_Record (void);
- // dtor.
-
- int operator== (const ACE_URL_Record &rhs) const;
- // Two records are equal if they have the same offer id.
-
- int operator!= (const ACE_URL_Record &rhs) const;
- // Unequal, complement of equal.
-
-private:
- ACE_URL_Record (void);
- // Default ctor. This is put here to prevent users from
- // pushing in an invalid record.
-
- ACE_WString *id_;
- // Offer ID in the repository.
-
- ACE_URL_Offer *offer_;
- // Offer (and its properties).
-};
-
-class ACE_SVC_Export ACE_URL_Local_Locator
- // = TITLE
- // A simple URL repository to store URL offer locally.
- //
- // = DESCRIPTION
- // This class manage a collection of URL offers
- // for local query and registration. But we should
- // really use it within a server.
-{
- virtual ~ACE_URL_Local_Locator (void);
- // Default destructor.
-
- virtual int url_query (const ACE_URL_Locator::ACE_Selection_Criteria how,
- const ACE_URL_Property_Seq *pseq,
- const size_t how_many,
- size_t &num_query,
- ACE_URL_Offer_Seq *offer);
- // Query the locator for HTTP with designate properties (none, some,
- // or all). The locator being queried will return a sequence of
- // offers with <how_many> offers in it. This interface allocates
- // <offer> so users must deallocate it after use.
-
- virtual int export_offer (ACE_URL_Offer *offer,
- ACE_WString &offer_id);
- // Export an offer to the locator.
-
- virtual int withdraw_offer (const ACE_WString &offer_id);
- // Withdraw an offer. return 0 if succeed, -1 otherwise.
-
- virtual int describe_offer (const ACE_WString &offer_id,
- ACE_URL_Offer *offer);
- // Query a specific offer.
-
- virtual int modify_offer (const ACE_WString &offer_id,
- const ACE_WString *url = 0,
- const ACE_URL_Property_Seq *del = 0,
- const ACE_URL_Property_Seq *modify = 0);
- // Modify a previously registered offer.
-
-protected:
- ACE_Unbounded_Set<ACE_URL_Record> repository_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "Local_Locator.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_LOCAL_LOCATOR_H */
diff --git a/apps/JAWS/clients/Caching/Local_Locator.i b/apps/JAWS/clients/Caching/Local_Locator.i
deleted file mode 100644
index 1d693472eb8..00000000000
--- a/apps/JAWS/clients/Caching/Local_Locator.i
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-ACE_INLINE
-ACE_URL_Record::ACE_URL_Record (void)
- : id_ (0),
- offer_ (0)
-{
-}
-
-ACE_INLINE
-ACE_URL_Record::ACE_URL_Record (ACE_URL_Offer *offer)
- : offer_ (offer)
-{
- char buf[ACE_OFFER_ID_LENGTH];
-
- ACE_NEW (this->id_, ACE_WString (ACE_ID_Generator::get_new_id (buf)));
-}
-
-ACE_INLINE
-ACE_URL_Record::~ACE_URL_Record (void)
-{
- delete this->id_;
- delete this->offer_;
-}
-
-ACE_INLINE int
-ACE_URL_Record::operator== (const ACE_URL_Record &rhs) const
-{
- return this == &rhs || *this->id_ == *rhs.id_;
-}
-
-ACE_INLINE int
-ACE_URL_Record::operator!= (const ACE_URL_Record &rhs) const
-{
- return !(*this == rhs);
-}
-
-ACE_INLINE
-ACE_URL_Local_Locator::~ACE_URL_Local_Locator (void)
-{
-}
-
diff --git a/apps/JAWS/clients/Caching/Locator_Request_Reply.cpp b/apps/JAWS/clients/Caching/Locator_Request_Reply.cpp
deleted file mode 100644
index 9687a325557..00000000000
--- a/apps/JAWS/clients/Caching/Locator_Request_Reply.cpp
+++ /dev/null
@@ -1,459 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-#if !defined (ACE_LOCATOR_REQUEST_REPLY_C)
-#define ACE_LOCATOR_REQUEST_REPLY_C
-
-#include "Locator_Request_Reply.h"
-
-#if !defined (__ACE_INLINE__)
-#include "Locator_Request_Reply.i"
-#endif
-
-#include "URL_Properties.h"
-#include "URL_Array_Helper.h"
-#include "URL_Locator.h"
-#include "ace/Auto_Ptr.h"
-
-int
-ACE_URL_Locator_Request::url_query (const int how,
- const ACE_URL_Property_Seq &pseq,
- const int how_many)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::url_query");
-
- if (how >= ACE_URL_Locator::INVALID_SELECTION)
- return -1;
- ACE_NEW_RETURN (this->seq1_, ACE_URL_Property_Seq (pseq), -1);
- this->how_ = how;
- this->how_many_ = how_many;
- this->code_ = ACE_URL_Locator::QUERY;
- return 0;
-}
-
-int
-ACE_URL_Locator_Request::export_offer (const ACE_URL_Offer &offer)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::export_offer");
-
- ACE_NEW_RETURN (this->offer_, ACE_URL_Offer (offer), -1);
- this->code_ = ACE_URL_Locator::EXPORT;
- return 0;
-}
-
-int
-ACE_URL_Locator_Request::withdraw_offer (const ACE_WString &offer_id)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::withdraw_offer");
-
- this->id_ = offer_id;
- this->code_ = ACE_URL_Locator::WITHDRAW;
- return 0;
-}
-
-int
-ACE_URL_Locator_Request::describe_offer (const ACE_WString &offer_id)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::describe_offer");
-
- this->id_ = offer_id;
- this->code_ = ACE_URL_Locator::DESCRIBE;
- return 0;
-}
-
-int
-ACE_URL_Locator_Request::modify_offer (const ACE_WString &offer_id,
- const ACE_WString *url,
- const ACE_URL_Property_Seq &del,
- const ACE_URL_Property_Seq &modify)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::modify_offer");
-
- ACE_NEW_RETURN (this->seq1_, ACE_URL_Property_Seq (del), -1);
- ACE_NEW_RETURN (this->seq2_, ACE_URL_Property_Seq (modify), -1);
-
- if (url != 0)
- this->url_ = *url;
-
- this->id_ = offer_id;
- this->code_ = ACE_URL_Locator::MODIFY;
- return 0;
-}
-
-#define ENCODE_UINT32(ADDR,LEN,V) \
- * (ACE_UINT32 *) (ADDR+LEN) = htonl (V); \
- LEN += sizeof (ACE_UINT32);
-
-#define DECODE_UINT32(ADDR,LEN,V) \
- V = ntohl (* (ACE_UINT32 *) (ADDR+LEN)); \
- LEN += sizeof (ACE_UINT32);
-
-size_t
-ACE_URL_Locator_Request::encode (void)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::encode");
-
- size_t buf_size = this->size ();
- size_t total_length = 0;
-
- ACE_NEW_RETURN (this->buffer_, char [buf_size], 0);
-
- ENCODE_UINT32 (this->buffer_, total_length, buf_size);
- // Encode buffer size.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->code_);
- // Encode Op code.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->how_);
- // Encode selection criteria.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->how_many_);
- // Encode number of offers interested.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->valid_ptr_);
- // Encode valide pointer flag.
-
- if (this->seq1_ != 0)
- {
- ENCODE_UINT32 (this->buffer_, total_length, this->seq1_->size ());
- total_length += ace_array_encode (this->buffer_ + total_length, *this->seq1_);
- }
- if (this->seq2_ != 0)
- {
- ENCODE_UINT32 (this->buffer_, total_length, this->seq2_->size ());
- total_length += ace_array_encode (this->buffer_ + total_length, *this->seq2_);
- }
- if (this->offer_ != 0)
- total_length += this->offer_->encode (this->buffer_ + total_length);
-
- total_length += ACE_WString_Helper::encode (this->buffer_ + total_length,
- this->id_);
- total_length += ACE_WString_Helper::encode (this->buffer_ + total_length,
- this->url_);
-
- ACE_ASSERT (total_length == buf_size);
- return total_length;
-}
-
-size_t
-ACE_URL_Locator_Request::decode (void *buffer)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::decode");
-
- if (buffer == 0)
- return 0;
- // Check if we have a valid buffer available.
-
- char *cbuffer = (char *) buffer;
-
- size_t buf_size;
- size_t total_length = 0;
-
- DECODE_UINT32 (cbuffer, total_length, buf_size);
- // Decode length of buffer size first.
-
- DECODE_UINT32 (cbuffer, total_length, this->code_);
- // Get the operation code.
-
- DECODE_UINT32 (cbuffer, total_length, this->how_);
- // Decode selection criteria.
-
- DECODE_UINT32 (cbuffer, total_length, this->how_many_);
- // Decode number of offers interested.
-
- DECODE_UINT32 (cbuffer, total_length, this->valid_ptr_);
- // Decode valide pointer flag.
-
- if ((this->valid_ptr_ & VALID_SEQ1) != 0)
- {
- size_t n;
- DECODE_UINT32 (cbuffer, total_length, n);
- ACE_NEW_RETURN (this->seq1_, ACE_URL_Property_Seq (n), 0);
- total_length += ace_array_decode (cbuffer + total_length, *this->seq1_);
- }
- if ((this->valid_ptr_ & VALID_SEQ2) != 0)
- {
- size_t n;
- DECODE_UINT32 (cbuffer, total_length, n);
- ACE_NEW_RETURN (this->seq2_, ACE_URL_Property_Seq (n), 0);
- total_length += ace_array_decode (cbuffer + total_length, *this->seq2_);
- }
- if ((this->valid_ptr_ & VALID_OFFER) != 0)
- {
- ACE_NEW_RETURN (this->offer_, ACE_URL_Offer, 0);
- total_length += this->offer_->decode (cbuffer + total_length);
- }
-
- this->id_ = ACE_WString ((ACE_USHORT16 *) (cbuffer + total_length));
- total_length += ACE_WString_Helper::decode (cbuffer + total_length);
- this->url_ = ACE_WString ((ACE_USHORT16 *) (cbuffer + total_length));
- total_length += ACE_WString_Helper::decode (cbuffer + total_length);
-
- ACE_ASSERT (total_length == buf_size);
- return total_length;
-}
-
-
-size_t
-ACE_URL_Locator_Request::size (void)
-{
- ACE_TRACE ("ACE_URL_Locator_Request::size");
-
- size_t total_length = 5 * sizeof (ACE_UINT32);
- // There are 5 UINT32 variables at the beginning
- // of the buffer. <buffer size>, <code>, <how>,
- // <how_many>, <valid_ptr>.
-
- this->valid_ptr_ = 0;
- // Check valid pointers and mark corresponding flag in <valid_prt>.
-
- if (this->seq1_ != 0)
- {
- this->valid_ptr_ |= VALID_SEQ1;
- total_length += ace_array_size (*this->seq1_);
- }
- if (this->seq2_ != 0)
- {
- this->valid_ptr_ |= VALID_SEQ2;
- total_length += ace_array_size (*this->seq2_);
- }
- if (this->offer_ != 0)
- {
- this->valid_ptr_ |= VALID_OFFER;
- total_length += this->offer_->size ();
- }
-
- total_length += ACE_WString_Helper::size (this->id_);
- total_length += ACE_WString_Helper::size (this->url_);
-
- return total_length;
-}
-
-void
-ACE_URL_Locator_Request::dump (void) const
-{
- //ACE_TRACE ("ACE_URL_Locator_Request::dump");
-
- size_t i;
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- if (this->code_ < ACE_URL_Locator::INVALID_OPERATION)
- ACE_DEBUG ((LM_DEBUG, "%s Request:\n", ACE_URL_Locator::opname[this->code_]));
- else
- ACE_DEBUG ((LM_DEBUG, "Invalid Operation: %d\n", this->code_));
-
- if (this->how_ < ACE_URL_Locator::INVALID_SELECTION)
- ACE_DEBUG ((LM_DEBUG, "Select: %s\n", ACE_URL_Locator::selection_name[this->how_]));
- else
- ACE_DEBUG ((LM_DEBUG, "Invalid selection method: %d\n", this->how_));
-
- ACE_DEBUG ((LM_DEBUG, "At most %d reply.\n", this->how_many_));
-
- ACE_DEBUG ((LM_DEBUG, "Valid pointer pattern: %x\n", this->valid_ptr_));
-
- ACE_DEBUG ((LM_DEBUG, "Property sequence 1: %x\n", this->seq1_));
- if (this->seq1_ != 0)
- for (i = 0; i < this->seq1_->size (); i++)
- (*this->seq1_)[i].dump ();
-
- ACE_DEBUG ((LM_DEBUG, "Property sequence 2: %x\n", this->seq2_));
- if (this->seq2_ != 0)
- for (i = 0; i < this->seq2_->size (); i++)
- (*this->seq2_)[i].dump();
-
- ACE_DEBUG ((LM_DEBUG, "Offer: %x\n", this->offer_));
- if (this->offer_ != 0)
- this->offer_->dump ();
-
- if (this->id_.length () > 0)
- ACE_DEBUG ((LM_DEBUG, "Offer ID: %s\n",
- ACE_Auto_Basic_Array_Ptr<char> (this->id_.char_rep ()).get ()));
- else
- ACE_DEBUG ((LM_DEBUG, "Offer ID: \"\"\n"));
-
- if (this->url_.length () > 0)
- ACE_DEBUG ((LM_DEBUG, "URL: %s\n",
- ACE_Auto_Basic_Array_Ptr<char> (this->url_.char_rep ()).get ()));
- else
- ACE_DEBUG ((LM_DEBUG, "URL: \"\"\n"));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-int
-ACE_URL_Locator_Reply::status_reply (u_int op, int result)
-{
- ACE_TRACE ("ACE_URL_Locator_Reply::status_reply");
-
- this->code_ = op;
- this->status_ = result;
- return 0;
-}
-
-int
-ACE_URL_Locator_Reply::query_reply (int result, size_t num,
- const ACE_URL_Offer_Seq &offers)
-{
- ACE_TRACE ("ACE_URL_Locator_Reply::query_reply");
-
- this->code_ = ACE_URL_Locator::QUERY;
- this->status_ = result;
- ACE_NEW_RETURN (this->offers_, ACE_URL_Offer_Seq (offers), -1);
- return 0;
-}
-
-int
-ACE_URL_Locator_Reply::describe_reply (int result,
- const ACE_URL_Offer &offer)
-{
- ACE_TRACE ("ACE_URL_Locator_Reply::describe_reply");
-
- this->code_ = ACE_URL_Locator::DESCRIBE;
- this->status_ = result;
- ACE_NEW_RETURN (this->offer_, ACE_URL_Offer (offer), -1);
- return 0;
-}
-
-size_t
-ACE_URL_Locator_Reply::encode (void)
-{
- ACE_TRACE ("ACE_URL_Locator_Reply::encode");
-
- size_t buf_size = this->size ();
- size_t total_length = 0;
-
- ACE_NEW_RETURN (this->buffer_, char [buf_size], 0);
-
- ENCODE_UINT32 (this->buffer_, total_length, buf_size);
- // Encode buffer size.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->code_);
- // Encode Op code.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->status_);
- // Encode Op result status.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->num_offers_);
- // Encode number of offers in this->offers_.
-
- ENCODE_UINT32 (this->buffer_, total_length, this->valid_ptr_);
- // Encode valid pointers mask.
-
- if (this->offer_ != 0)
- total_length += this->offer_->encode (this->buffer_ + total_length);
-
- if (this->offers_ != 0)
- {
- ENCODE_UINT32 (this->buffer_, total_length, this->offers_->size ());
- total_length += ace_array_encode (this->buffer_ + total_length, *this->offers_);
- }
-
- ACE_ASSERT (total_length == buf_size);
- return 0;
-}
-
-size_t
-ACE_URL_Locator_Reply::decode (void *buffer)
-{
- ACE_TRACE ("ACE_URL_Locator_Reply::decode");
-
- if (buffer == 0)
- return 0;
- // Check if we have a buffer available.
-
- char *cbuffer = (char *) buffer;
-
- size_t buf_size;
- size_t total_length = 0;
-
- DECODE_UINT32 (cbuffer, total_length, buf_size);
- // Get the length of the buffer first.
-
- DECODE_UINT32 (cbuffer, total_length, this->code_);
- // Decode Op code.
-
- DECODE_UINT32 (cbuffer, total_length, this->status_);
- // Decode Op result status.
-
- DECODE_UINT32 (cbuffer, total_length, this->num_offers_);
- // Decode number of offers in this->offers_.
-
- DECODE_UINT32 (cbuffer, total_length, this->valid_ptr_);
- // Decode valid pointers mask.
-
- if ((this->valid_ptr_ & VALID_OFFER) != 0)
- {
- ACE_NEW_RETURN (this->offer_, ACE_URL_Offer, 0);
- total_length += this->offer_->decode (cbuffer + total_length);
- }
-
- if ((this->valid_ptr_ & VALID_OFFERS) != 0)
- {
- size_t n;
- DECODE_UINT32 (cbuffer, total_length, n);
- ACE_NEW_RETURN (this->offers_, ACE_URL_Offer_Seq (n), 0);
- total_length += ace_array_decode (cbuffer + total_length, *this->offers_);
- }
-
- ACE_ASSERT (total_length ==buf_size);
- return 0;
-}
-
-size_t
-ACE_URL_Locator_Reply::size (void)
-{
- ACE_TRACE ("ACE_URL_Locator_Reply:size");
-
- size_t total_length = 5 * sizeof (ACE_UINT32);
- // size for 5 ACE_UINT32 objects: <buffer size>, <code_>,
- // <status_>, <num_offers_>, and <valid_ptr_>.
-
- this->valid_ptr_ = 0;
- if (this->offer_ != 0)
- {
- this->valid_ptr_ |= VALID_OFFER;
- total_length += this->offer_->size ();
- }
- if (this->offers_ != 0)
- {
- this->valid_ptr_ |= VALID_OFFERS;
- total_length += ace_array_size (*this->offers_);
- }
- return total_length;
-}
-
-void
-ACE_URL_Locator_Reply::dump (void) const
-{
- //ACE_TRACE ("ACE_URL_Locator_Reply::dump");
-
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- if (this->code_ < ACE_URL_Locator::INVALID_OPERATION)
- ACE_DEBUG ((LM_DEBUG, "Original request: %s\n", ACE_URL_Locator::opname[this->code_]));
- else
- ACE_DEBUG ((LM_DEBUG, "Invalid Original Request: %d\n", this->code_));
-
- if (this->status_ < ACE_URL_Locator::MAX_URL_ERROR)
- ACE_DEBUG ((LM_DEBUG, "Reply status: %s\n", ACE_URL_Locator::err_name[this->status_]));
- else
- ACE_DEBUG ((LM_DEBUG, "Invalid reply status: %d\n", this->status_));
-
- ACE_DEBUG ((LM_DEBUG, "Number of offers: %d\n", this->num_offers_));
-
- ACE_DEBUG ((LM_DEBUG, "Valid pointer pattern: %x\n", this->valid_ptr_));
-
- ACE_DEBUG ((LM_DEBUG, "Offer: %x\n", this->offer_));
- if (this->offer_ != 0)
- this->offer_->dump ();
-
- ACE_DEBUG ((LM_DEBUG, "Offer sequence: %x\n", this->offers_));
- if (this->offers_ != 0)
- for (size_t i = 0; i < this->offers_->size (); i++)
- (*this->offers_)[i].dump();
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-#endif /* ACE_LOCATOR_REQUEST_REPLY_C */
diff --git a/apps/JAWS/clients/Caching/Locator_Request_Reply.h b/apps/JAWS/clients/Caching/Locator_Request_Reply.h
deleted file mode 100644
index 579ad82a5cd..00000000000
--- a/apps/JAWS/clients/Caching/Locator_Request_Reply.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// Locator_Request_Response.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-#if !defined (ACE_LOCATOR_REQUEST_REPLY_H)
-#define ACE_LOCATOR_REQUEST_REPLY_H
-
-#include "URL_Properties.h"
-
-class ACE_SVC_Export ACE_URL_Locator_Request
- // = TITLE
- // A URL request message formater/wrapper.
- //
- // = DESCRIPTION
- // This class defines a URL request data. It is used
- // to transform requests to an object so that we can
- // ship them across network.
-{
-public:
- ACE_URL_Locator_Request (void);
- // Default ctor.
-
- ~ACE_URL_Locator_Request (void);
- // Default dtor.
-
- int url_query (const int how,
- const ACE_URL_Property_Seq &pseq,
- const int how_many);
- // Query the locator for HTTP with designate properties (none, some,
- // or all). The locator being queried will return a sequence of
- // offers with <how_many> offers in it. This interface allocates
- // <offer> so users must deallocate it after use.
-
- int export_offer (const ACE_URL_Offer &offer);
- // Export an offer to the locator.
-
- int withdraw_offer (const ACE_WString &offer_id);
- // Withdraw an offer. return 0 if succeed, -1 otherwise.
-
- int describe_offer (const ACE_WString &offer_id);
- // Query a specific offer.
-
- int modify_offer (const ACE_WString &offer_id,
- const char *url = 0,
- const ACE_URL_Property_Seq &del = 0,
- const ACE_URL_Property_Seq &modify = 0);
- // Modify a previously registered offer.
-
- int modify_offer (const ACE_WString &offer_id,
- const ACE_WString *url = 0,
- const ACE_URL_Property_Seq &del = 0,
- const ACE_URL_Property_Seq &modify = 0);
- // Modify a previously registered offer.
-
- size_t encode (void);
- // Encode request for network communication. If succeed,
- // returns the size of the buffer, otherwise, return 0.
-
- size_t decode (void *buffer);
- // Restore from network data. Returns size of the buffer
- // if succeed, 0 otherwise. When passing in a buffer,
- // caller must take the responsibility to delete the buffer
- // afterward, if so needed.
-
- const int how (void) const;
- const int how_many (void) const;
- const u_int opcode (void) const;
- const ACE_URL_Property_Seq *seq (void) const;
- const ACE_URL_Property_Seq *del (void) const;
- const ACE_URL_Property_Seq *modify (void) const;
- const ACE_URL_Offer *offer (void) const;
- const ACE_WString &id (void) const;
- const ACE_WString &url (void) const;
- const char *buffer (void) const;
- // A bunch of methods to access internal data.
-
- void dump (void) const;
- // Print out this object.
-
-protected:
- size_t size (void);
- // Return the size of the buffer required to encode
- // this request.
-
- enum {
- VALID_SEQ1 = 0x1,
- VALID_SEQ2 = 0X2,
- VALID_OFFER = 0X4
- };
- // These constants used to indicate which pointers are valid.
-
- u_int code_;
- // Request type code.
-
- int how_;
- // Query method (if code_ == QUERY.)
-
- int how_many_;
- // How many offers are we interested in in this query.
-
- int valid_ptr_;
- // Bit flag to mark valid pointers within this object.
-
- ACE_URL_Property_Seq *seq1_;
- // For query or del in modify_offer.
-
- ACE_URL_Property_Seq *seq2_;
- // For modify seq. in modify_offer.
-
- ACE_URL_Offer *offer_;
- // Offer to export.
-
- ACE_WString id_;
- // Offer ID.
-
- ACE_WString url_;
- // URL of this offer.
-
- char *buffer_;
- // Buffer to store encoded data.
-};
-
-class ACE_SVC_Export ACE_URL_Locator_Reply
- // = TITLE
- // A URL reply message formater/wrapper.
- //
- // = DESCRIPTION
- // This class defines a URL reply data. It is used
- // to transform reply messages to an object so that we can
- // ship them across network.
-{
-public:
- ACE_URL_Locator_Reply (void);
- // Default ctor.
-
- ~ACE_URL_Locator_Reply (void);
- // Default dtor.
-
- int status_reply (u_int op, int result);
- // Setup a reply message for EXPORT, WITHDRAW, or MODIFY operations.
-
- int query_reply (int result, size_t num,
- const ACE_URL_Offer_Seq &offers);
- // Setup a reply for QUERY operation.
-
- int describe_reply (int result,
- const ACE_URL_Offer &offer);
- // Construct a reply for DESCRIBE operation.
-
- size_t encode (void);
- // Encode request for network communication. If succeed,
- // returns the size of the buffer, otherwise, return 0.
-
- size_t decode (void *buffer);
- // Restore from network data. Returns size of the buffer
- // if succeed, 0 otherwise. When passing in a buffer,
- // caller must take the responsibility to delete the buffer
- // afterward, if so needed.
-
- // Accessor function.
- const size_t num_offers (void) const;
- const ACE_URL_Offer *offer (void) const;
- const ACE_URL_Offer_Seq *offers (void) const;
- const u_int opcode (void) const;
- const u_int status (void) const;
- const char *buffer (void) const ;
-
- void dump (void) const ;
- // Print out this object.
-
-protected:
- size_t size (void);
- // Return the size of the buffer required to encode
- // this request.
-
- enum {
- VALID_OFFER = 0x1,
- VALID_OFFERS = 0x2
- };
- // Valid pointer masks.
-
- u_int code_;
- // Holds the original op code.
-
- int status_;
- // Holds the result of an operation from the Location Server.
-
- size_t num_offers_;
- // Holds the number of valid offers in the offers_ sequence.
-
- int valid_ptr_;
- // Flag that marks valid internal pointers.
-
- ACE_URL_Offer *offer_;
- // Holds a single offer. Used in query offer property.
-
- ACE_URL_Offer_Seq *offers_;
- // Holds the replying offer sequence from a Locator.
-
- char *buffer_;
- // Buffer to store encoded data.
-};
-#if defined (__ACE_INLINE__)
-#include "Locator_Request_Reply.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_LOCATOR_REQUEST_REPLY_H */
diff --git a/apps/JAWS/clients/Caching/Locator_Request_Reply.i b/apps/JAWS/clients/Caching/Locator_Request_Reply.i
deleted file mode 100644
index 9dd2f851ceb..00000000000
--- a/apps/JAWS/clients/Caching/Locator_Request_Reply.i
+++ /dev/null
@@ -1,138 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-#include "URL_Locator.h"
-
-ACE_INLINE
-ACE_URL_Locator_Request::ACE_URL_Locator_Request (void)
- : code_(ACE_URL_Locator::INVALID_OPERATION),
- seq1_ (0),
- seq2_ (0),
- offer_ (0),
- buffer_ (0)
-{
-}
-
-ACE_INLINE
-ACE_URL_Locator_Request::~ACE_URL_Locator_Request (void)
-{
- delete this->seq1_;
- delete this->seq2_;
- delete this->offer_;
- delete [] this->buffer_;
-}
-
-ACE_INLINE const int
-ACE_URL_Locator_Request::how (void) const
-{
- return this-> how_;
-}
-
-ACE_INLINE const int
-ACE_URL_Locator_Request::how_many (void) const
-{
- return this->how_many_;
-}
-
-ACE_INLINE const u_int
-ACE_URL_Locator_Request::opcode (void) const
-{
- return this->code_;
-}
-
-ACE_INLINE const ACE_URL_Property_Seq *
-ACE_URL_Locator_Request::seq (void) const
-{
- return this->seq1_;
-}
-
-ACE_INLINE const ACE_URL_Property_Seq *
-ACE_URL_Locator_Request::del (void) const
-{
- return this->seq1_;
-}
-
-ACE_INLINE const ACE_URL_Property_Seq *
-ACE_URL_Locator_Request::modify (void) const
-{
- return this->seq2_;
-}
-
-ACE_INLINE const ACE_URL_Offer *
-ACE_URL_Locator_Request::offer (void) const
-{
- return this->offer_;
-}
-
-ACE_INLINE const ACE_WString &
-ACE_URL_Locator_Request::id (void) const
-{
- return this->id_;
-}
-
-ACE_INLINE const ACE_WString &
-ACE_URL_Locator_Request::url (void) const
-{
- return this->url_;
-}
-
-ACE_INLINE const char *
-ACE_URL_Locator_Request::buffer (void) const
-{
- return this->buffer_;
-}
-
-ACE_INLINE
-ACE_URL_Locator_Reply::ACE_URL_Locator_Reply (void)
- : code_ (ACE_URL_Locator::INVALID_OPERATION),
- offer_ (0),
- offers_ (0),
- buffer_ (0)
-{
-}
-
-ACE_INLINE
-ACE_URL_Locator_Reply::~ACE_URL_Locator_Reply (void)
-{
- delete this->offer_;
- delete this->offers_;
- delete [] this->buffer_;
-}
-
-ACE_INLINE const size_t
-ACE_URL_Locator_Reply::num_offers (void) const
-{
- return this->num_offers_;
-}
-
-
-ACE_INLINE const ACE_URL_Offer *
-ACE_URL_Locator_Reply::offer (void) const
-{
- return this->offer_;
-}
-
-ACE_INLINE const ACE_URL_Offer_Seq *
-ACE_URL_Locator_Reply::offers (void) const
-{
- return this->offers_;
-}
-
-ACE_INLINE const u_int
-ACE_URL_Locator_Reply::opcode (void) const
-{
- return this->code_;
-}
-
-ACE_INLINE const u_int
-ACE_URL_Locator_Reply::status (void) const
-{
- return this->status_;
-}
-
-ACE_INLINE const char *
-ACE_URL_Locator_Reply::buffer (void) const
-{
- return this->buffer_;
-}
diff --git a/apps/JAWS/clients/Caching/Makefile b/apps/JAWS/clients/Caching/Makefile
deleted file mode 100644
index 411753421b2..00000000000
--- a/apps/JAWS/clients/Caching/Makefile
+++ /dev/null
@@ -1,146 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE Adapter Web Server (JAWS) client
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = http_client
-
-FILES = http_handler
-
-SRC = $(addsuffix .cpp,$(FILES))
-OBJ = $(addsuffix .o,$(FILES))
-
-BUILD = $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/http_handler.o .obj/http_handler.so .shobj/http_handler.o .shobj/http_handler.so: http_handler.cpp http_handler.h \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Connector.i \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- $(ACE_ROOT)/ace/Filecache.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS/clients/Caching/README b/apps/JAWS/clients/Caching/README
deleted file mode 100644
index 3dcfcd32815..00000000000
--- a/apps/JAWS/clients/Caching/README
+++ /dev/null
@@ -1,83 +0,0 @@
-# -*- text -*-
-# Hey, Emacs! This is a TEXT file.
-
-----------------------------------
-README for the caching http_client
-----------------------------------
-
-This is the README file for the simple caching http_client.
-
-------------
-1. Compiling
-------------
-
-1a. Compiling on UNIX.
-
- On UNIX, with a properly configured ACE distribution, just
-type make (using GNU make, of course).
-
-1b. Compiling on NT.
-
- Thus far, this code has only been tested under UNIX. A
-Windows NT version will be out soon.
-
-------------
-2. Executing
-------------
-
-2a. Command line parameters.
-
- The program does not support any command line parameters.
-
-2b. General information.
-
- When the program runs, the client offers a ``*'' as a prompt.
-At the prompt, you may enter a URL. The client will check to see if
-the filename portion of the URL has already been cached. If so, a
-message appears saying so. If not, the client will fetch the file
-from the HTTP server and then cache it.
-
- Furthermore, the client supports the ``!'' shell escape
-command. The content after the ``!'' will be executed by a shell.
-
- To exit the session, send the end-of-file character
-(typically, ^D in UNIX).
-
- unix$ ./http_client
- * http://www.cs.wustl.edu/cs/Art/brookings.gif
- [1] sending request --
- GET /cs/Art/brookings.gif HTTP/1.0
- Accept: HTTP/1.0
-
- ``brookings.gif'' is now cached.
- * http://www.cs.wustl.edu/cs/Art/brookings.gif
- ``brookings.gif'' is already cached.
- * !ls
- Makefile http_client http_handler.cpp zJAWSAAAa000Yg
- brookings.gif http_client.cpp http_handler.h
- * ^D
- Bye!
- unix$ ls
- Makefile http_client http_handler.cpp
- brookings.gif http_client.cpp http_handler.h
- unix$
-
---------------
-3. Limitations
---------------
-
- The caching mechanism as currently implemented requires a
-``Content-length:'' to appear in the response header of the HTTP
-response. This is because the caching utilizes mmap () to allocate
-space for the file to be cached before the file is received. Unitl
-the caching mecahnism is extended, you are limited to using servers
-which will report the size of the file being transmitted.
-
- Currently, the cache creates temporary files (see the above
-sample execution).
-
- The cache is not persistent between executions.
-
- Suggestions and other correspondence should be sent to me:
-
-James Hu <jxh@cs.wustl.edu>
diff --git a/apps/JAWS/clients/Caching/URL_Array_Helper.cpp b/apps/JAWS/clients/Caching/URL_Array_Helper.cpp
deleted file mode 100644
index 0a0376e35af..00000000000
--- a/apps/JAWS/clients/Caching/URL_Array_Helper.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-// URL_Array_Helper.cpp
-// $Id$
-
-#if !defined (ACE_URL_ARRAY_HELPER_C)
-#define ACE_URL_ARRAY_HELPER_C
-
-#include "URL_Array_Helper.h"
-
-// Some helper functions for encoding/decoding
-
-template <class T>
-size_t ace_array_size (const T &x)
-{
- size_t sum = sizeof (ACE_UINT32);
- for (size_t i = 0; i < x.size (); i++)
- sum += x[i].size ();
- return sum;
-}
-
-template <class T>
-size_t ace_array_encode (void *buf, const T &x)
-{
- size_t len = 0;
- for (size_t i = 0; i < x.size (); i++)
- len+= x[i].encode ((void *) ((char *) buf + len));
- return len ;
-}
-
-template <class T>
-size_t ace_array_decode (void *buf, T &x)
-{
- size_t len = 0;
- for (size_t i = 0; i < x.size (); i++)
- len += x[i].decode ((void *) ((char *) buf + len));
- return len;
-}
-
-
-
-#endif /* ACE_URL_ARRAY_HELPER_C */
diff --git a/apps/JAWS/clients/Caching/URL_Array_Helper.h b/apps/JAWS/clients/Caching/URL_Array_Helper.h
deleted file mode 100644
index 08a261138fc..00000000000
--- a/apps/JAWS/clients/Caching/URL_Array_Helper.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// URL_Array_Helper.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-#if !defined (ACE_URL_ARRAY_HELPER_H)
-#define ACE_URL_ARRAY_HELPER_H
-
-// ### These template functions are probably named improperly.
-// You should find some way to avoid name space polution.
-
-template <class T>
-size_t ace_array_size (const T &x);
-
-template <class T>
-size_t ace_array_encode (void *buf, const T &x);
-
-template <class T>
-size_t ace_array_decode (void *buf, T &x);
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "URL_Array_Helper.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("URL_Array_Helper.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* ACE_URL_ARRAY_HELPER_H */
diff --git a/apps/JAWS/clients/Caching/URL_Locator.cpp b/apps/JAWS/clients/Caching/URL_Locator.cpp
deleted file mode 100644
index 1f25bd8bbab..00000000000
--- a/apps/JAWS/clients/Caching/URL_Locator.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-#if !defined (ACE_URL_LOCATOR_C)
-#define ACE_URL_LOCATOR_C
-
-#include "URL_Locator.h"
-
-#if !defined (__ACE_INLINE__)
-#include "URL_Locator.i"
-#endif
-
-const char * const
-ACE_URL_Locator::opname[] =
-// Human readable operation name
-{
- "Query",
- "Export",
- "Withdraw",
- "Describe",
- "Modify",
- "Invalid Operation"
-};
-
-const char * const
-ACE_URL_Locator::selection_name[] =
-{
- "None",
- "Some",
- "All",
- "Invalid Selection"
-};
-
-const char * const
-ACE_URL_Locator::err_name[] =
-{
- "No error",
- "Offer already exist",
- "no such offer",
- "invalid argument",
- "function not implemented",
- "unknown error"
-};
-
-ACE_URL_Locator::~ACE_URL_Locator (void)
-{
-}
-
-const char *
-ACE_URL_Locator::error_status (void)
-{
- return "Not implemented yet.";
-}
-
-#endif /* ACE_URL_LOCATOR_C */
diff --git a/apps/JAWS/clients/Caching/URL_Locator.h b/apps/JAWS/clients/Caching/URL_Locator.h
deleted file mode 100644
index 2b41cd5ed50..00000000000
--- a/apps/JAWS/clients/Caching/URL_Locator.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// URL_Locator.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-#if !defined (ACE_URL_LOCATOR_H)
-#define ACE_URL_LOCATOR_H
-
-#include "URL_Properties.h"
-
-class ACE_SVC_Export ACE_URL_Locator
- // = TITLE
- // Abstract Base class designates what interfaces a URL_Locator
- // should provide.
- //
- // = DESCRIPTION
- // This class defines the basic URL_Locator APIs.
- // An URL locator provides services for URL clients to
- // query specific URL location that has certain properties
- // and URL providers to export their services and a set of
- // APIs to maintain their offers.
-{
-public:
- // Request type
- enum ACE_URL_Locator_Op_Type
- {
- QUERY = 0,
- EXPORT,
- WITHDRAW,
- DESCRIBE,
- MODIFY,
- INVALID_OPERATION // LAST
- };
-
- static const char * const opname[];
- // Human Readable operation name.
-
- // = Specify how to select offers.
- enum ACE_Selection_Criteria
- {
- NONE = 0, // URL that contains none of the properties.
- SOME, // URL that contains some of the properties.
- ALL, // URL that contains all of the properties.
- INVALID_SELECTION // Invalid.
- };
-
- static const char * const selection_name[];
-
- enum ACE_URL_Locator_Error
- // errno will set to one of these value.
- {
- OK, // Everything is fine.
- OFFER_EXIST, // trying to register an offer.
- // that is already exist in repository.
- NO_SUCH_OFFER, // No such offer in the repository.
- INVALID_ARGUMENT, // Invalid argument encountered.
- UNIMPLEMENTED, // function not implemented.
- UNKNOWN, // Unknown error.
- MAX_URL_ERROR
- };
- // Possible error code of URL_Locator.
-
- static const char * const err_name[];
- // Human readable error status.
-
- virtual ~ACE_URL_Locator (void) = 0;
- // Default destructor.
-
- virtual int url_query (const ACE_Selection_Criteria how,
- const ACE_URL_Property_Seq *pseq,
- const size_t how_many,
- size_t &num_query,
- ACE_URL_Offer_Seq *offer) = 0;
- // Query the locator for HTTP with designate properties (none, some,
- // or all). The locator being queried will return a sequence of
- // offers with <how_many> offers in it. This interface allocates
- // <offer> so users must deallocate it after use.
-
- virtual int export_offer (ACE_URL_Offer *offer,
- ACE_WString &offer_id) = 0;
- // Export an offer to the locator.
-
- virtual int withdraw_offer (const ACE_WString &offer_id) = 0;
- // Withdraw an offer. return 0 if succeed, -1 otherwise.
-
- virtual int describe_offer (const ACE_WString &offer_id,
- ACE_URL_Offer *offer) = 0;
- // Query a specific offer.
-
- virtual int modify_offer (const ACE_WString &offer_id,
- const ACE_WString *url = 0,
- const ACE_URL_Property_Seq *del = 0,
- const ACE_URL_Property_Seq *modify = 0) = 0;
- // Modify a previously registered offer.
-
- virtual const char *error_status (void);
- // Provide a human readable error status.
-};
-
-#if defined (__ACE_INLINE__)
-#include "URL_Locator.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_WEB_LOCATOR_H */
diff --git a/apps/JAWS/clients/Caching/URL_Locator.i b/apps/JAWS/clients/Caching/URL_Locator.i
deleted file mode 100644
index 722888896c1..00000000000
--- a/apps/JAWS/clients/Caching/URL_Locator.i
+++ /dev/null
@@ -1,4 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
diff --git a/apps/JAWS/clients/Caching/URL_Properties.cpp b/apps/JAWS/clients/Caching/URL_Properties.cpp
deleted file mode 100644
index afa650bee90..00000000000
--- a/apps/JAWS/clients/Caching/URL_Properties.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-// URL_Properties.cpp
-// $Id$
-
-#if !defined (ACE_URL_PROPERTIES_C)
-#define ACE_URL_PROPERTIES_C
-
-#include "URL_Properties.h"
-
-#if !defined (__ACE_INLINE__)
-#include "URL_Properties.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/OS.h"
-#include "ace/Auto_Ptr.h"
-#include "URL_Array_Helper.h"
-
-size_t
-ACE_WString_Helper::encode (void *buf, const ACE_WString &wstr)
-{
- ACE_USHORT16 *wptr = (ACE_USHORT16 *) buf;
- size_t i;
-
- for (i= 0; i <= wstr.length (); i++)
- wptr[i] = htons (wstr[i]);
-
- return i * sizeof (ACE_USHORT16);
-}
-
-size_t
-ACE_WString_Helper::decode (void *buf)
-{
- ACE_USHORT16 *wptr = (ACE_USHORT16 *) buf;
- size_t i;
-
- for (i = 0; wptr[i] != 0; i++)
- wptr[i] = ntohs (wptr[i]);
-
- return (i + 1) * sizeof (ACE_USHORT16);
-}
-
-size_t
-ACE_URL_Property::encode (void *buf) const
-{
- size_t blen = ACE_WString_Helper::encode (buf, this->name_);
- blen += ACE_WString_Helper::encode ((void *) ((char *) buf + blen),
- this->value_);
- return blen;
-}
-
-size_t
-ACE_URL_Property::decode (void *buf)
-{
- char *cbuf = (char *) buf;
- size_t len = ACE_WString_Helper::decode(buf);
- this->name ((ACE_USHORT16 *) cbuf);
-
- cbuf += len;
- len += ACE_WString_Helper::decode ((void *) cbuf);
- this->value ((ACE_USHORT16 *) cbuf);
- return len;
-}
-
-void
-ACE_URL_Property::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- if (this->name_.length () > 0)
- ACE_DEBUG ((LM_DEBUG, "\n name_: \"%s\"\n",
- ACE_Auto_Basic_Array_Ptr<char> (this->name_.char_rep ()).get ()));
- else
- ACE_DEBUG ((LM_DEBUG, "\n name_: \"\"\n"));
-
- if (this->value_.length () > 0)
- ACE_DEBUG ((LM_DEBUG, " value_: \"%s\"\n",
- ACE_Auto_Basic_Array_Ptr<char> (this->value_.char_rep ()).get ()));
- else
- ACE_DEBUG ((LM_DEBUG, " value_: \"\"\n"));
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-size_t
-ACE_URL_Offer::size (void) const
-{
- size_t sum = (this->url_.length () + 1) * sizeof (ACE_USHORT16);
- sum += ::ace_array_size (this->prop_);
- return sum;
-}
-
-size_t
-ACE_URL_Offer::encode (void *buf) const
-{
- ACE_UINT32 *s_buf = (ACE_UINT32 *) buf;
- *s_buf = htonl (this->prop_.size ());
-
- size_t len = sizeof (ACE_UINT32);
- len += ACE_WString_Helper::encode ((void *) ((char *) buf + len),
- this->url_);
-
- len += ::ace_array_encode ((void *) ((char *) buf + len),
- this->prop_);
- return len;
-}
-
-size_t
-ACE_URL_Offer::decode (void *buf)
-{
- size_t len = sizeof (ACE_UINT32);
- size_t a_size = (size_t) ntohl (*(ACE_UINT32 *) buf);
- len += ACE_WString_Helper::decode ((void *) ((char *) buf + len));
- this->url ((ACE_USHORT16 *) ((char *) buf + len));
-
- ACE_URL_Property_Seq prop_seq (a_size);
- this->url_properties (prop_seq);
-
- len += ::ace_array_decode ((void *)((char *) buf + len),
- this->prop_);
- return len;
-}
-
-void
-ACE_URL_Offer::dump (void) const
-{
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
-
- if (this->url_.length () > 0)
- ACE_DEBUG ((LM_DEBUG, "\n url_: \"%s\"\n",
- ACE_Auto_Basic_Array_Ptr<char> (this->url_.char_rep ()).get ()));
- else
- ACE_DEBUG ((LM_DEBUG, "\n url_: \"\"\n"));
-
- for (size_t i = 0; i < this->prop_.size (); i++)
- this->prop_[i].dump ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Auto_Basic_Array_Ptr<char>;
-template class ACE_Array<ACE_URL_Property>;
-template class ACE_Array<ACE_URL_Offer>;
-template size_t ace_array_size (ACE_Array<ACE_URL_Property> &);
-template size_t ace_array_encode (void *, ACE_Array<ACE_URL_Property> &);
-template size_t ace_array_decode (void *, ACE_Array<ACE_URL_Property> &);
-template size_t ace_array_size (ACE_Array<ACE_URL_Offer> &);
-template size_t ace_array_encode (void *, ACE_Array<ACE_URL_Offer> &);
-template size_t ace_array_decode (void *, ACE_Array<ACE_URL_Offer> &);
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Auto_Basic_Array_Ptr<char>
-#pragma instantiate ACE_Array<ACE_URL_Property>
-#pragma instantiate ACE_Array<ACE_URL_Offer>
-#pragma instantiate size_t ace_array_size (ACE_Array<ACE_URL_Property> &)
-#pragma instantiate size_t ace_array_encode (void *, ACE_Array<ACE_URL_Property> &)
-#pragma instantiate size_t ace_array_decode (void *, ACE_Array<ACE_URL_Property> &)
-#pragma instantiate size_t ace_array_size (ACE_Array<ACE_URL_Offer> &)
-#pragma instantiate size_t ace_array_encode (void *, ACE_Array<ACE_URL_Offer> &)
-#pragma instantiate size_t ace_array_decode (void *, ACE_Array<ACE_URL_Offer> &)
-#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-#endif /* ACE_URL_PROPERTIES_C */
diff --git a/apps/JAWS/clients/Caching/URL_Properties.h b/apps/JAWS/clients/Caching/URL_Properties.h
deleted file mode 100644
index ad490e5d285..00000000000
--- a/apps/JAWS/clients/Caching/URL_Properties.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// URL_Locator.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-#if !defined (ACE_URL_PROPERTIES_H)
-#define ACE_URL_PROPERTIES_H
-
-#include "ace/SString.h"
-#include "ace/Array.h"
-
-class ACE_SVC_Export ACE_WString_Helper
- // = TITLE
- // Some helper functions for manipulate ACE_WString.
- //
- // = DESCRIPTION
- // These functions simplify encoding/decoding of
- // ACE_WString objects for network communication.
-{
-public:
- static size_t size (const ACE_WString &wstr);
- // Returns the actual size (in bytes) required to contain the
- // ACE_WString.
-
- static size_t encode (void *buf, const ACE_WString &wstr);
- // Encode <wstr> into <buf> for network communication.
- // Return total octets consumed.
-
- static size_t decode (void *buf);
- // This function doesn't relate to ACE_WString directly.
- // It converts an ACE_USHORT16 string from network
- // byte order to host byte order. Returns size of the string.
-};
-
-class ACE_SVC_Export ACE_URL_Property
- // = TITLE
- // Defines a property of a URL.
- //
- // = DESCRIPTION
- // A property contains a <name> and a <value>.
- // A URL may contain some properties and we can "locate"
- // the URL's we are looking for by examming URL for certain
- // properties that match our need.
-{
-public:
- ACE_URL_Property (const char *name = 0,
- const char *value=0);
- // Create a new property.
-
- ACE_URL_Property (const ACE_USHORT16 *name,
- const ACE_USHORT16 *value);
- // Create a new property using wchar strings. This is mostly used
- // to support DBCS or UNICODE.
-
- ACE_URL_Property (const ACE_URL_Property &p);
- // Copy constructor.
-
- ~ACE_URL_Property (void);
- // Destructor.
-
- ACE_URL_Property &operator= (const ACE_URL_Property &rhs);
- // Assignment operator.
-
- int operator== (const ACE_URL_Property &rhs) const;
- // Equals operator.
-
- int operator!= (const ACE_URL_Property &rhs) const;
- // Inequality operator.
-
- // = Query property name.
- ACE_WString &name_rep (void);
- const ACE_WString &name (void) const;
-
- // = Set property name.
- void name (const ACE_USHORT16 *n);
- void name (const char *n);
-
- // = Query property value.
- ACE_WString &value_rep (void);
- const ACE_WString &value (void) const;
-
- // = Set property value.
- void value (const ACE_USHORT16 *v);
- void value (const char *v);
-
- // = Helper functions for encoding and decoding.
- size_t size (void) const;
- // Returns memory size (in bytes) required to encode this object.
-
- size_t encode (void *buf) const;
- // Encodes this object into buf for network transmission.
-
- size_t decode (void *buf);
- // Decodes buf and modifies this object, you should
- // probably create this with default ctor.
-
- void dump (void) const;
- // Dump out this object for debug.
-
-protected:
- ACE_WString name_;
- // Property name pointer.
-
- ACE_WString value_;
- // Property value.
-} ;
-
-typedef ACE_Array<ACE_URL_Property> ACE_URL_Property_Seq;
-// type of URL_Property collections.
-
-class ACE_SVC_Export ACE_URL_Offer
- // = TITLE
- // Defines a URL offer.
- //
- // = DESCRIPTION
- // A URL offer is defined by a <url> and an
- // <ACE_URL_Property_Seq>. An offer is stored at server end
- // thru registering or reported back to querying client from the
- // sever.
-{
-public:
- ACE_URL_Offer (const size_t size = 1, const char *url = 0);
- // Create an offer.
-
- ACE_URL_Offer (const ACE_URL_Offer &o);
- // Copy ctor.
-
- ~ACE_URL_Offer (void);
- // Default destructor.
-
- ACE_URL_Offer &operator= (const ACE_URL_Offer &rhs);
- // Assignment operator.
-
- int operator== (const ACE_URL_Offer &rhs) const;
- // Equality operator.
-
- int operator!= (const ACE_URL_Offer &rhs) const;
- // Inequality operator.
-
- // = Get URL string.
- ACE_WString &url_rep (void);
- const ACE_WString &url (void) const;
-
- // = Set URL.
- void url (const char *url);
- void url (const ACE_USHORT16 *url);
-
- ACE_URL_Property_Seq &url_properties (void);
- // Get properties of this offer.
-
- void url_properties (const ACE_URL_Property_Seq &prop);
- // Set properties of this offer. This operation virtually get a
- // copy of the passed in prop.
-
- // = Helper functions for encoding and decoding.
- size_t size (void) const;
- // Returns memory size (in bytes) required to encode this object.
-
- size_t encode (void *buf) const;
- // Encodes this object into buf for network transmission.
-
- size_t decode (void *buf);
- // Decodes buf into current object, you better use
- // the default ctor.
-
- void dump (void) const;
- // Dump this object for debug.
-
-protected:
- ACE_WString url_;
- // URL of this offer.
-
- ACE_URL_Property_Seq prop_;
- // Properties associate with this offer.
-};
-
-typedef ACE_Array<ACE_URL_Offer> ACE_URL_Offer_Seq;
-// type of URL offer collections.
-
-#if defined (__ACE_INLINE__)
-#include "URL_Properties.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_WEB_PROPERTIES_H */
diff --git a/apps/JAWS/clients/Caching/URL_Properties.i b/apps/JAWS/clients/Caching/URL_Properties.i
deleted file mode 100644
index 9e0cb59d03e..00000000000
--- a/apps/JAWS/clients/Caching/URL_Properties.i
+++ /dev/null
@@ -1,203 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-ACE_INLINE size_t
-ACE_WString_Helper::size (const ACE_WString &wstr)
-{
- return (wstr.length () + 1) * sizeof (ACE_USHORT16);
-}
-
-ACE_INLINE
-ACE_URL_Property::ACE_URL_Property (const char *name, const char *value)
- : name_ (name),
- value_ (value)
-{
-}
-
-ACE_INLINE
-ACE_URL_Property::ACE_URL_Property (const ACE_USHORT16 *name,
- const ACE_USHORT16 *value)
- : name_ (name),
- value_ (value)
-{
-}
-
-ACE_INLINE
-ACE_URL_Property::ACE_URL_Property (const ACE_URL_Property &p)
- : name_ (p.name_),
- value_ (p.value_)
-{
-}
-
-ACE_INLINE
-ACE_URL_Property::~ACE_URL_Property (void)
-{
-}
-
-ACE_INLINE ACE_URL_Property &
-ACE_URL_Property::operator= (const ACE_URL_Property &rhs)
-{
- if (this != &rhs)
- {
- this->name_ = rhs.name_;
- this->value_ = rhs.value_;
- }
- return *this;
-}
-
-ACE_INLINE int
-ACE_URL_Property::operator== (const ACE_URL_Property &rhs) const
-{
- if (this == &rhs || this->name_ != rhs.name_ ||
- this->value_ != rhs.value_)
- return 1;
- else
- return 0;
-}
-
-ACE_INLINE int
-ACE_URL_Property::operator!= (const ACE_URL_Property &rhs) const
-{
- return !(*this == rhs);
-}
-
-ACE_INLINE ACE_WString &
-ACE_URL_Property::name_rep (void)
-{
- return this->name_;
-}
-
-ACE_INLINE const ACE_WString &
-ACE_URL_Property::name (void) const
-{
- return this->name_;
-}
-
-ACE_INLINE void
-ACE_URL_Property::name (const char *n)
-{
- this->name_ = ACE_WString (n);
-}
-
-ACE_INLINE void
-ACE_URL_Property::name (const ACE_USHORT16 *n)
-{
- this->name_ = ACE_WString (n);
-}
-
-ACE_INLINE ACE_WString &
-ACE_URL_Property::value_rep (void)
-{
- return this->value_;
-}
-
-ACE_INLINE const ACE_WString &
-ACE_URL_Property::value (void) const
-{
- return this->value_;
-}
-
-ACE_INLINE void
-ACE_URL_Property::value (const char *v)
-{
- this->value_ = ACE_WString (v);
-}
-
-ACE_INLINE void
-ACE_URL_Property::value (const ACE_USHORT16 *v)
-{
- this->value_ = ACE_WString (v);
-}
-
-
-ACE_INLINE size_t
-ACE_URL_Property::size (void) const
-{
- size_t len = 2;
- len += this->name_.length () + this->value_.length ();
- return len * sizeof (ACE_USHORT16);
-}
-
-ACE_INLINE
-ACE_URL_Offer::ACE_URL_Offer (const size_t size, const char *url)
- : url_ (url),
- prop_ (size)
-{
-}
-
-ACE_INLINE
-ACE_URL_Offer::ACE_URL_Offer (const ACE_URL_Offer &o)
- : url_ (o.url_),
- prop_ (o.prop_)
-{
-}
-
-ACE_INLINE
-ACE_URL_Offer::~ACE_URL_Offer (void)
-{
-}
-
-ACE_INLINE ACE_URL_Offer &
-ACE_URL_Offer::operator= (const ACE_URL_Offer &rhs)
-{
- if (this != &rhs)
- {
- this->url_ = rhs.url_;
- this->prop_ = rhs.prop_;
- }
- return *this;
-}
-
-ACE_INLINE int
-ACE_URL_Offer::operator== (const ACE_URL_Offer &rhs) const
-{
- if (this == &rhs
- && this->url_ == rhs.url_
- && this->prop_ == rhs.prop_)
- return 1;
- else
- return 0;
-}
-
-ACE_INLINE int
-ACE_URL_Offer::operator!= (const ACE_URL_Offer &rhs) const
-{
- return !(*this == rhs);
-}
-
-ACE_INLINE ACE_WString &
-ACE_URL_Offer::url_rep (void)
-{
- return this->url_;
-}
-
-ACE_INLINE const ACE_WString &
-ACE_URL_Offer::url (void) const
-{
- return this->url_;
-}
-
-ACE_INLINE void
-ACE_URL_Offer::url (const ACE_USHORT16 *url)
-{
- this->url_ = ACE_WString (url);
-}
-
-ACE_INLINE void
-ACE_URL_Offer::url (const char *url)
-{
- this->url_ = ACE_WString (url);
-}
-
-ACE_INLINE ACE_URL_Property_Seq &
-ACE_URL_Offer::url_properties (void)
-{
- return this->prop_;
-}
-
-ACE_INLINE void
-ACE_URL_Offer::url_properties (const ACE_URL_Property_Seq &prop)
-{
- this->prop_ = prop;
-}
diff --git a/apps/JAWS/clients/Caching/http_client.cpp b/apps/JAWS/clients/Caching/http_client.cpp
deleted file mode 100644
index 3f624a6c9f6..00000000000
--- a/apps/JAWS/clients/Caching/http_client.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps/JAWS/clients/Caching
-//
-// = FILENAME
-// http_client.cpp
-//
-// = DESCRIPTION
-// This is a very simple client. It accepts URLs from a prompt, and
-// will try to fetch them. Also accepts shell escapes.
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#include "http_handler.h"
-
-int
-main (int, char *[])
-{
- // Present a command line.
- // * Accept a URL.
- // Pass it to the HTTP_Connector.
- // Connect.
- // Report status.
- // * Accept shell escape character.
-
- char buf[BUFSIZ];
-
- ACE_DEBUG ((LM_DEBUG, "* "));
-
- while (ACE_OS::fgets (buf, sizeof (buf), stdin) != NULL)
- {
- char *s = buf;
-
- while (isspace (*s))
- s++;
-
- if (*s == '!')
- {
- do
- s++;
- while (isspace (*s));
-
- // Shell command.
- if (ACE_OS::system (s) == -1)
- ACE_ERROR ((LM_ERROR, " ! Error executing: %s\n", s));
- }
- else if (ACE_OS::strncmp (s, "http://", 7) == 0)
- {
- // URL
- HTTP_Connector connector;
- connector.connect (s);
- }
- else
- ACE_ERROR ((LM_ERROR, " ? I don't understand: %s\n", s));
-
- ACE_ERROR ((LM_ERROR, "* "));
- }
-
- ACE_DEBUG ((LM_DEBUG, "\nBye!\n"));
-
- return 0;
-}
diff --git a/apps/JAWS/clients/Caching/http_handler.cpp b/apps/JAWS/clients/Caching/http_handler.cpp
deleted file mode 100644
index 06d6093e8ea..00000000000
--- a/apps/JAWS/clients/Caching/http_handler.cpp
+++ /dev/null
@@ -1,253 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps/JAWS/clients/Caching
-//
-// = FILENAME
-// http_handler.cpp
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#include "http_handler.h"
-#include "ace/Filecache.h"
-
-HTTP_Handler::HTTP_Handler (void)
-{
-}
-
-HTTP_Handler::HTTP_Handler (const char * path)
-{
- // How long is the request going to be?
- this->request_[0] = '\0';
- this->request_size_ =
- ACE_OS::strlen ("GET ")
- + ACE_OS::strlen (path)
- + ACE_OS::strlen (" HTTP/1.0\r\nAccept: HTTP/1.0\r\n\r\n");
-
- // Make the request.
- if ((u_int) this->request_size_ < sizeof (this->request_))
- ACE_OS::sprintf (this->request_,
- "GET %s HTTP/1.0\r\nAccept: HTTP/1.0\r\n\r\n",
- path);
-
- // Find the filename.
- const char *last = ACE_OS::strrchr (path, '/');
-
- if (last == 0)
- last = path;
- else if (last[1] == '\0')
- last = "index.html";
- else
- last = last+1;
-
- ACE_OS::sprintf (this->filename_, "%s", last);
-}
-
-int
-HTTP_Handler::open (void *)
-{
- // If you want threads, use the activate stuff.
-#if 0
- if (this->activate () != 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "HTTP_Handler::open, whups!\n"), -1);
- }
-
- return 0;
-#else
- return this->svc ();
-#endif /* 0 */
-}
-
-int
-HTTP_Handler::svc (void)
-{
- static char buf[BUFSIZ];
- int count = 0;
-
- ACE_DEBUG ((LM_DEBUG, "[%t] sending request --\n%s", this->request_));
-
- this->peer ().send_n (this->request_, this->request_size_);
-
- // Read in characters until encounter \r\n\r\n
- int done = 0;
- char *contentlength;
-
- do
- {
- while (((count += this->peer ().recv_n (buf + count, 1)) > 0)
- && ((u_int) count < sizeof (buf)))
- {
- buf[count] = '\0';
-
- if (count < 2)
- continue;
- done = ACE_OS::strcmp (buf + count - 4, "\n\n") == 0;
-
- if (done)
- break;
-
- if (count < 4)
- continue;
-
- done = ACE_OS::strcmp (buf + count - 4, "\r\n\r\n") == 0;
-
- if (done)
- break;
- }
-
- if (!done)
- {
- char *last = ACE_OS::strrchr (buf, '\n');
- last[0] = '\0';
-
- if ((contentlength = ACE_OS::strstr (buf, "\nContent-length:"))
- || (contentlength = ACE_OS::strstr (buf, "\nContent-Length:")))
- done = 1;
- else
- {
- last[0] = '\n';
- count = ACE_OS::strlen (last);
- ACE_OS::memmove (buf, last, count + 1);
- }
- }
- else
- {
- contentlength = ACE_OS::strstr (buf, "\nContent-length:");
-
- if (!contentlength)
- contentlength =
- ACE_OS::strstr (buf, "\nContent-Length:");
- }
-
- }
- while (!done);
-
- // ASSERT (contentlength != 0)
- if (contentlength
- && (::sscanf (contentlength, "\nContent-%*[lL]ength: %d ",
- &this->response_size_) == 1))
- {
- ACE_Filecache_Handle afh (this->filename_,
- this->response_size_);
-
- this->peer ().recv_n (afh.address (), this->response_size_);
-
- ACE_DEBUG ((LM_DEBUG,
- " ``%s'' is now cached.\n",
- this->filename_));
- }
- else
- {
- // Maybe we should do something more clever here, such as extend
- // ACE_Filecache_Handle to allow the creation of cache objects
- // whose size is unknown?
-
- // Another possibility is to write the contents out to a file,
- // and then cache it.
-
- // Perhaps make ACE_Filecache_Handle more savvy, and allow a
- // constructor which accepts a PEER as a parameter.
- ACE_DEBUG ((LM_DEBUG,
- "HTTP_Handler, no content-length header!\n"));
- }
-
- return 0;
-}
-
-const char *
-HTTP_Handler::filename (void) const
-{
- return this->filename_;
-}
-
-int
-HTTP_Connector::connect (const char * url)
-{
- char host[BUFSIZ];
- u_short port;
- char path[BUFSIZ];
-
- if (this->parseurl (url, host, &port, path) == -1)
- {
- ACE_DEBUG ((LM_DEBUG,
- "HTTP_Connector, error parsing url: %s\n",
- url));
- return -1;
- }
-
- HTTP_Handler hh (path);
- HTTP_Handler *hhptr = &hh;
-
- // First check the cache.
- if (ACE_Filecache::instance ()->find (hh.filename ()) == 0)
- {
- ACE_DEBUG ((LM_DEBUG, " ``%s'' is already cached.\n",
- hh.filename ()));
- return 0;
- }
-
- return this->connector_.connect (hhptr, ACE_INET_Addr (port, host));
-}
-
-#define DEFAULT_SERVER_PORT 80
-
-// extract the main components of a URL
-int
-HTTP_Connector::parseurl (const char *url,
- char *host,
- u_short *port,
- char *path)
-{
- int status = 0;
-
- // hackish, but useful
- if (3 != ::sscanf (url, "http://%[^:/]:%hu%s", host, port, path))
- {
- if (2 != ::sscanf (url, "http://%[^:/]:%hu", host, port))
- {
- if (2 != ::sscanf (url, "http://%[^:/]%s", host, path))
- {
- if (1 != ::sscanf (url, "http://%[^:/]", host))
- status = -1;
- else
- {
- *port = DEFAULT_SERVER_PORT;
- ACE_OS::strcpy (path, "/");
- }
- }
- else
- *port = DEFAULT_SERVER_PORT;
- }
- else ACE_OS::strcpy (path, "/");
- }
-
- // 0 => success
- // -1 => error
- return status;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Connector<HTTP_Handler, ACE_SOCK_CONNECTOR>;
-template class ACE_Svc_Tuple<HTTP_Handler>;
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-template class ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*>;
-template class ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Connector<HTTP_Handler, ACE_SOCK_CONNECTOR>
-#pragma instantiate ACE_Svc_Tuple<HTTP_Handler>
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-#pragma instantiate ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*>
-#pragma instantiate ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<HTTP_Handler>*, ACE_SYNCH_RW_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/clients/Caching/http_handler.h b/apps/JAWS/clients/Caching/http_handler.h
deleted file mode 100644
index 85a1b9338fe..00000000000
--- a/apps/JAWS/clients/Caching/http_handler.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file.
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps/JAWS/clients/Caching
-//
-// = FILENAME
-// http_handler.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#include "ace/Connector.h"
-#include "ace/SOCK_Connector.h"
-
-class HTTP_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
- // = TITLE
- // A simple HTTP protocol handler for clients.
- //
- // = DESCRIPTION
- // Checks to see if the requested file is already cached. If
- // so, it says so. If not, the request is issued to the
- // connection. The fetched file is cached.
-{
-public:
- // = Initialization methods.
- HTTP_Handler (void);
- HTTP_Handler (const char * path);
-
- virtual int open (void *);
- // Open hook.
-
- virtual int svc (void);
- // Entry points defined by the abstract Svc_Handler.
-
- const char *filename (void) const;
- // Accessor to the file being fetched.
-
-private:
- char request_[BUFSIZ];
- int request_size_;
-
- char filename_[BUFSIZ];
- int response_size_;
-};
-
-class HTTP_Connector
- // = TITLE
- // A simple HTTP connector.
- //
- // = DESCRIPTION
- // Creates an HTTP Handler based on the URL, and then delegates
- // to to the SOCK_CONNECTOR. Adapter pattern.
-{
-public:
- int connect (const char * url);
- // User entry point into the HTTP connector.
-
-private:
- int parseurl (const char *url,
- char *host,
- u_short *port,
- char *path);
- // Helper function.
-
-private:
- ACE_Connector<HTTP_Handler, ACE_SOCK_CONNECTOR> connector_;
- // Factory that actively establishes a connection with an HTTP
- // server.
-};
-
diff --git a/apps/JAWS/clients/Caching/test_URL.cpp b/apps/JAWS/clients/Caching/test_URL.cpp
deleted file mode 100644
index 38a625ec82f..00000000000
--- a/apps/JAWS/clients/Caching/test_URL.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-// $Id$
-
-#include "ace/streams.h"
-#include "Locator_Request_Reply.h"
-
-int main (int argc, char *argv[])
-{
- ACE_UNUSED_ARG (argc);
- ACE_UNUSED_ARG (argv);
-
- ACE_URL_Locator_Request original, derived;
-
- ACE_URL_Property_Seq ouch1(3);
- ouch1[0].name ("name 1");
- ouch1[0].value ("value 1");
- ouch1[1].name ("name 2");
- ouch1[1].value ("value 2");
- ouch1[2].name ("name 3");
- ouch1[2].value ("value 3");
-
- original.url_query (1, ouch1, 3);
-
- original.dump ();
- derived.dump ();
-
- original.encode ();
-
- derived.decode ((void*) original.buffer ());
-
- derived.dump ();
-
- return 0;
-}
diff --git a/apps/JAWS/clients/Makefile b/apps/JAWS/clients/Makefile
deleted file mode 100644
index a09d6b017da..00000000000
--- a/apps/JAWS/clients/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for JAWS
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = Blobby \
- Caching
-
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
-
diff --git a/apps/JAWS/clients/README b/apps/JAWS/clients/README
deleted file mode 100644
index e35d7af53c9..00000000000
--- a/apps/JAWS/clients/README
+++ /dev/null
@@ -1,13 +0,0 @@
-This directory contains the source code for various clients related to
-JAWS, which is a high-performance HTTP Web server written with ACE. For
-more information on JAWS, please see
-
-http://www.cs.wustl.edu/~jxh/research/
-
-The subdirectories in this directory contain the following components
-
- . Blobby - a Blobby client
-
- . Caching - a Web client which caches
-
- . WebSTONE - modified to be multi-threaded
diff --git a/apps/JAWS/clients/WebSTONE/COPYING b/apps/JAWS/clients/WebSTONE/COPYING
deleted file mode 100644
index 13057b45514..00000000000
--- a/apps/JAWS/clients/WebSTONE/COPYING
+++ /dev/null
@@ -1,348 +0,0 @@
- While most of the source code in WebStone is covered by the terms
-in the file LICENSE, the following files are covered by the GNU license,
-reproduced below:
-
- config.guess
- config.sub
-
------------------------------
-
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/apps/JAWS/clients/WebSTONE/README b/apps/JAWS/clients/WebSTONE/README
deleted file mode 100644
index 2d024b925a1..00000000000
--- a/apps/JAWS/clients/WebSTONE/README
+++ /dev/null
@@ -1,245 +0,0 @@
-README WebStone 2.0.1 bug fix release
- Proxy server bug fixed (now correctly handles proxy server)
- Error reading page_stats error fixed
- More Windows NT integration
- Correctly handles URL's to different hostnames in the filelist
- Improved Solaris compatibility
-
- NOTE: If you intend to run webstone with more than 100 URL
-entries in the filelist, please edit src/bench.h and change the
-MAXNUMOFPAGES value to reflect the higher number, and then recompile
-everything. Copy the new binaries into the bin directory and then
-run webstone.
-
-README WebStone 2.0 Release version
-
-WARNING: WebStone 2.0 results should not be compared with WebStone 1.1
- results. Even under the same fileset performance will not be
- equivalent.
-
-Please see the notes for 2.0beta6 for quick and dirty install
- This version includes a port of the webstone source code to Windows
-NT. This port is still in progress, so it is not possible to guarantee
-that everything is working correctly - however in our test configurations
-it has performed correctly. Note that the supporting scripts and report
-generating code has not been ported to NT yet.
-
- This version also institutes some basic run rules to eliminate the
-lack of conformity in Webstone performance quotes.
- To report Webstone numbers, some basic rules should be followed:
-
- 1) The fileset used for the test must be the fileset.standard fileset
- included in the distribution. Tests of CGI performance must be
- with the file filelist.cgi-heavy, and tests of NSAPI performance
- must be carried out with filelist.dynamic-heavy
-
- 2) The run time should be set for 10 minutes, and the number of
- clients should vary from 20 clients to 100 clients in increments
- of 10. When a connections/second time is quoted, it must include
- information about the number of clients involved.
-
- 3) Any special TCP/IP tuning which the server has recieved should
- be documented, as well as HTTPD server version and configuration
- information such as logging, DNS lookups and number of threads.
-
-
-README - WebStone 2.0beta6
-
-WARNING: Do not compare WebStone 2.0 results with WebStone 1.0 results.
- WebStone 2.0 introduces significant changes in testing methodology
- and reporting.
-
-This is the WebStone benchmark. Quick and dirty install:
- - set up a Web server
- - put this directory (WebStone) on a seperate machine (the "controller")
- - "./webstone -setup", which does the following:
- - gui-configure
- This script may fail if you don't have a Web browser or
- Perl5. Don't worry, unless you want to use the GUI.
- - autoconf
- If the GNU autoconf fails for your OS, please forward the
- error messages, and any porting hints, to the author.
- - make install
- This may not be necessary, since IRIX binaries are included.
- - edit conf/testbed to reflect your site
- See the doc/FAQ-webstone.html for details.
- - ./webstone -genfiles will put the files in conf/fileset
- onto your Web server.
- - ./webstone
- - to display a table of results: ./webstone -results
-
-If you'd like to try out the GUI for WebStone:
- - run "./webstone -setup", as above.
- - make sure you have a Web browser installed
- - ./configure
- - ./webstone -gui
-
-Files of interest:
- README: This document.
- README.FIRST: Quick and dirty directions.
- README.DynamicWorkload: Information on the CGI and NSAPI workloads.
- webstone: wrapper shell script for everything.
- Takes options:
- -gui: start the GUI mode
- -kill: kill stray WebStone processes
- -genfiles: build files (from conf/fileset)
- and rcp onto the server $SERVER
- - results: print table of results
- -setup: initial make and setup
- -silent: runs in the background
- -tail: tail -f of most recent run
-
-Files of interest (./src):
- Makefile, *.c, *.h: The Webstone source code
-
-Files of interest (./bin):
- checkfilelist: uses rsh to check web server for files in filelist.
- genfiles, genrand: generates files of arbitrary length.
- getstats: Collects network statistics from Web server, clients.
- killbench: terminates stray WebStone processes.
- rebootall: reboots all WebStone webclients.
- runbench: wrapper script for WebStone.
- webmaster: WebStone controller executable.
- webstone: WebStone client executable.
- wscollect: reports results in tabular format.
-
-Files of interest (./conf):
- filelist: default list of files on the Web server,
- with workload description.
- filelist.photo: Model of a popular Web site
- containing photographic images.
- filelist.ss: Model of SGI's Silicon Surf WWW site.
- fileset: list of files for genfiles to create.
- testbed: config file describing Web server, client, and network setup.
-
-Documentation (./doc):
- FAQ.html: The FAQ, current as of this distribution.
- LICENSE: Legal status of WebStone.
- testbed.help: Explains the parameters in conf/testbed.
- webstone-white-paper.ps: The original WebStone white paper.
- webstone.gif: The WebStone logo.
-
-Additional documentation:
- FAQ.html: Frequently Asked Questions, with answers
- webstone.ps: PostScript white paper on WebStone
-
-Problems, etc. may be addressed to the WebStone mailing list.
-Read the FAQ for details.
-
-Release Notes (2.0 beta6):
- * fixed a bug for Web servers not on port 80
- * further changes to bin/wscollect.pl
-
-Release Notes (2.0 beta5):
- * numerous minor fixes suggested by gcc -Wall -pedantic
- * updated FAQ
- * changed bin/wscollect.pl to use Perl formats
-
-Release Notes (2.0 beta4):
- * added #include <sys/time.h> to bench.h
- * changed webclient located to $TMPDIR - this should help people
- who don't want to run WebStone as root
- * changed check for libm to floor() instead of sqrt(). Apparently
- some systems implement sqrt() in libc - let's hope no one implement
- floor() in libc and sqrt() in libm!
-
-Release Notes (2.0 beta3):
- * more portability fixes
- * successfully compiled on FreeBSD 2.2, IRIX without any source
- changes
-
-Release Notes (2.0 beta2):
- * additional timezone fixes for SunOS
-
-Release Notes (2.0 beta1):
- * fixed a bug in the rexec portion of webmaster.c
- * fixed a bug in the usage() routine of webmaster.c
- * added bin/genfiles-from-filelist.sh
- - bin/genfiles-from-filelist.sh <filename>
- - generates appropriate-length files from <filename>
- - <filename> must contain three fields:
- <relative URL> <weight> #<size in bytes>
- example: /file.html 1 #1024
- * added bin/mine-logs.pl
- - usage: mine-logs.pl <filename>
- where <filename> is an http server log file
- - writes a WebStone workload to standard output
-
-Release Notes (2.0 alpha5):
- * revised default testbed file
- * changed wscollect to wscollect.pl for consistency
- * changed webstone-gui to webstone-gui.pl for consistency
- * added some NT porting hints
- * added autoconf, which should help Linux and SunOS porting
-
-Release Notes (2.0 alpha4):
- * added SunOS and Linux portability elements
- * new scheme for random access to pages
- * converted several static arrays to dynamic pointers
-
-Release Notes (2.0 alpha2):
- * fixed per-page statistics
- * new, client-independent data-passing scheme
- * added support for proxy servers
-
-Release Notes (2.0 alpha1):
- * new filelist scheme - however, this breaks per-page statistics
- * minor fixes
-
-Release Notes (1.1):
- * Improved webclient performance by combining GET and ACCEPT
- HTTP headers in one write() call.
- * Improved webclient performance on systems that always attempt
- to map protocol names to numbers using YP.
- * WARNING: since the old code introduced a significant latency
- in some systems, DO NOT compare WebStone 1.1 results
- with results generated by any previous versions.
-
-Release Notes (1.0.3):
- * Netscape Server 1.1.2 exposed a couple bugs, which I've now fixed.
-
-Release Notes (1.0.2):
- * Fixed runbench so that ITERATIONS, MINCLIENTS, and MAXCLIENTS don't
- have to have a common denominator any more.
- * Fixed a few cosmetic bugs.
-
-Release Notes (1.0.1):
- * Fixed select() bug in webmaster
-
-Release Notes (1.0 final):
- * Fixed the "Error reading 2nd timing info" bug
- * Fixed numerous bugs in the GUI
- * Froze feature set. Work can now begin on WebStone 1.1
-
-Release Notes (1.0b3):
- * New Web browser GUI
- NOTE: most Web browsers take up substantial CPU time.
- If you run the GUI, we recommend that you make the controller
- a separate machine, and don't run any WebStone clients on it.
- * Minor bug fixes
- Squashed some dubious error messages, fixed some client-
- controller communications problems.
- * Reporting changes
- Changes the units and order of the final summary statistics.
- Basically, this is for my own convenience, so I don't have to
- massage the data quite so much before using it. wscollect
- now reports only the metrics I regard as important - but all
- metrics are still reported in the runs/*/run files.
-
-LEGAL STUFF:
-
-This file and all files contained in this directory are
-copyright 1995, Silicon Graphics, Inc.
-
-This software is provided without support and without any obligation on the
-part of Silicon Graphics, Inc. to assist in its use, correction, modification
-or enhancement. There is no guarantee that this software will be included in
-future software releases, and it probably will not be included.
-
-THIS SOFTWARE IS PROVIDED "AS IS" WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE,
-OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-
-In no event will Silicon Graphics, Inc. be liable for any lost revenue or
-profits or other special, indirect and consequential damages, even if
-Silicon Graphics, Inc. has been advised of the possibility of such damages. \ No newline at end of file
diff --git a/apps/JAWS/clients/WebSTONE/README.DynamicWorkload b/apps/JAWS/clients/WebSTONE/README.DynamicWorkload
deleted file mode 100644
index a263d1a8a0e..00000000000
--- a/apps/JAWS/clients/WebSTONE/README.DynamicWorkload
+++ /dev/null
@@ -1,37 +0,0 @@
-WebStone Dynamic Workload
-
- WebStone now includes a workload that tests dynamically generated
-Web pages.
-
- To use the dynamic workload models, you must install a dynamic module
-on the Web server to be tested. The Web server must also be configured such
-that a request for "/file.dyn-send?size=1024" (for example) will cause the
-module to be run, and will return 1024 bytes of data.
-
-Example configuration (Netscape server, executable is "nsapi-send"):
- cd src
- make nsapi
- cp nsapi-send.so /usr/lib
- cd /usr/ns-home/httpd-80/config
- in magnus.conf, add the line:
- Init fn=load-modules shlib=nsapi.so funcs=nsapi-send
- in obj.conf, add the line:
- Service method=(GET|HEAD) fn=nsapi-send \
- type=magnus-internal/dyn-send
- in mime.types, add the line:
- type=magnus-internal/dyn-send exts=dyn-send
- restart the Web server
-
- Example code for CGI and NS-API is included as src/cgi-send.c
-and src/nsapi-send.c - if you implement other APIs, please forward a copy
-of your code to the WebStone mailing list or to the WebStone authors.
-
-Included workloads:
- conf/workload.dynamic-heavy: All content is dynamically generated.
- conf/filelist.dynamic-medium: About 50% of content is dynamically
- generated.
- conf/filelist.dynamic-light: About 25% of content is dynamically
- generated.
-
-As always, we encourage you to design your own workloads, tailored for your
-environment.
diff --git a/apps/JAWS/clients/WebSTONE/README.FIRST b/apps/JAWS/clients/WebSTONE/README.FIRST
deleted file mode 100644
index b93c02afe3b..00000000000
--- a/apps/JAWS/clients/WebSTONE/README.FIRST
+++ /dev/null
@@ -1,21 +0,0 @@
-QUICK AND DIRTY README FOR WEBSTONE 2.0
-
-For more details, consult the README* files and the doc/FAQ-webstone.html
-
-First, run:
-
- ./webstone -setup
-
- This script uses GNU autoconf, makes the binaries, and then
-puts you into the vi editor with the conf/testbed file. For details on
-how to edit conf/testbed, consult the FAQ.
-
-Next, if you have a Web broswer available, and you'd like to try the GUI
-
- ./webstone -gui
-
-Otherwise, run the benchmark by typing
-
- ./webstone
-
-
diff --git a/apps/JAWS/clients/WebSTONE/WEBSTONE-VERSION-2.0 b/apps/JAWS/clients/WebSTONE/WEBSTONE-VERSION-2.0
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/apps/JAWS/clients/WebSTONE/WEBSTONE-VERSION-2.0
+++ /dev/null
diff --git a/apps/JAWS/clients/WebSTONE/bin/WebStone-common.pl b/apps/JAWS/clients/WebSTONE/bin/WebStone-common.pl
deleted file mode 100755
index 0e3ddd80ceb..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/WebStone-common.pl
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-1;
-
-sub show_model {
- $model = `head -1 $wd/conf/filelist`;
- $model =~ s/\#//;
- ( $model ) = split(':', $model);
-
- print CLIENT <<EOF
-<P><STRONG>
-<A HREF=\"$wd/bin/WebStone-setup.pl\">$model
-</A></STRONG>
-EOF
- ;
-}
-
-sub html_begin {
-
- ( $title ) = @_;
-
- close(STDOUT);
- open(STDOUT, ">&CLIENT");
- close(STDERR);
- open(STDERR, ">&CLIENT");
-
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>WebStone $title</TITLE>
-<A HREF="$wd/doc/WebStone.html">
-<IMG SRC="$wd/doc/webstone.gif" ALT="WebStone" BORDER=0 ></A>
-<H1>World Wide Web Server Benchmarking</H1>
-<DL>
-<DT><EM>If you have any questions, please read the
-<A HREF="$wd/doc/FAQ-webstone.html">WebStone FAQ</A>.</EM>
-<HR>
-EOF
- ;
-
-}
-
-sub html_end {
-
- print CLIENT <<EOF
-<HR>
-<ADDRESS><A HREF="$wd/doc/LICENSE.html">copyright 1995 Silicon Graphics</A>
-</ADDRESS>
-</BODY>
-</HTML>
-EOF
- ;
-
- close(STDERR);
- close(STDOUT);
- open(STDOUT);
- open(STDERR);
-}
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/WebStone-manage.pl b/apps/JAWS/clients/WebSTONE/bin/WebStone-manage.pl
deleted file mode 100755
index e9d28e8fecf..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/WebStone-manage.pl
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-html_begin("Administration");
-
-$runsdir = "$wd/bin/runs";
-$thelength = length($runsdir) + 10;
-$oldrunsdir = $runsdir;
-$oldfilelist = "$wd/conf/filelist";
-
-print CLIENT <<EOF
-<FORM METHOD="POST" ACTION="$wd/bin/killbench.pl">
-<H3>Clean up stray WebStone processes</H3>
-<INPUT TYPE="SUBMIT" VALUE="Kill">
-</FORM>
-
-<HR>
-<FORM METHOD="POST" ACTION="$wd/bin/move-runs.pl">
-<H3>Move Results Directory to:</H3>
-<INPUT TYPE=TEXT NAME=runsdir SIZE=$thelength VALUE=$runsdir>
-<INPUT TYPE="SUBMIT" VALUE="Move Directory">
-</FORM>
-EOF
- ;
-
-html_end();
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/WebStone-run.pl b/apps/JAWS/clients/WebSTONE/bin/WebStone-run.pl
deleted file mode 100755
index 716cebfa602..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/WebStone-run.pl
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-$testbed = "conf/testbed";
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-html_begin("Run");
-
-print CLIENT <<EOF
-<H3><CENTER><A HREF="WebStone-setup.pl">Edit Configuration</A>
-</CENTER></H3>
-EOF
- ;
-
-&show_model();
-print CLIENT "<PRE>";
-
-open(FILEHANDLE, $testbed);
-while (<FILEHANDLE>) {
- (/^\#/) || print CLIENT $_;
-}
-close(FILEHANDLE);
-
-print CLIENT <<EOF
-</PRE>
-<CENTER>
-<FORM METHOD=POST ACTION="http://localhost:$html_port$wd/bin/runbench.pl">
-<INPUT TYPE="submit" VALUE="Run WebStone">
-</CENTER>
-EOF
- ;
-
-html_end();
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl b/apps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl
deleted file mode 100755
index 107e1d94890..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-@keylist = ();
-
-html_begin("Setup");
-
-show_model();
-
-print CLIENT <<EOF
-<FORM METHOD="POST" ACTION="$wd/bin/write-testbed.pl">
-EOF
- ;
-
-&gettestbed();
-&getconfig();
-
-print CLIENT <<EOF
-</DL>
-<P><INPUT TYPE="SUBMIT" VALUE="Write Configuration">
-</FORM>
-
-<HR>
-<FORM METHOD="POST" ACTION="$wd/bin/move-filelist.pl">
-<H3>Choose a Web site model:</H3>
-<DL>
-EOF
- ;
-
-for $key (sort(keys %filelist)) {
- print CLIENT "<DD><INPUT TYPE=RADIO NAME=filelist ";
- if ($key eq "filelist") {
- print CLIENT " CHECKED ";
- }
- print CLIENT " VALUE=\"$wd/conf/$key\"> $key: $filelist{$key}";
-}
-
-print CLIENT <<EOF
-</DL>
-<INPUT TYPE="SUBMIT" VALUE="Set Workload">
-
-EOF
- ;
-
-html_end();
-
-# end of main program
-
-sub gettestbed {
- open(TESTBED, "$wd/conf/testbed");
- while (<TESTBED>) {
- if (/^\#|^(\w)*$/) { # do nothing
- }
- else {
- ( $textvalue, $thevalue ) = split( '=', $_ );
- ( $thevalue ) = split( '#', $thevalue);
- $testbed{$textvalue} = $thevalue;
- push(@keylist, $textvalue);
- }
- }
- close(TESTBED);
-
- open(HELPFILE, "$wd/doc/testbed.help");
- while (<HELPFILE>) {
- ( $key, $textvalue ) = split( ':', $_ );
- $helptext{$key} = $textvalue;
- }
- close(HELPFILE);
-
- foreach $key (@keylist) {
- print CLIENT "<P><DT>$helptext{$key}";
- $thesize = length($testbed{$key}) + 5;
- print CLIENT "<DD>$key <INPUT TYPE=TEXT NAME=$key ";
- print CLIENT "SIZE=$thesize VALUE=$testbed{$key}>\n";
- }
-}
-
-sub getconfig {
- opendir(CONF, "$wd/conf") || die "open $wd/conf: $!";
- %filelist = "";
- foreach $file (sort readdir(CONF)) {
- if ( $file =~ /^filelist.*/ ) {
- $headtext = `head -1 $wd/conf/$file`;
- $headtext =~ s/\#//;
- ( $headtext ) = split(':', $headtext);
- $filelist{$file} = $headtext;
- }
- }
- closedir(CONF);
-}
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/checkfilelist b/apps/JAWS/clients/WebSTONE/bin/checkfilelist
deleted file mode 100755
index 4cc2d11c49e..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/checkfilelist
+++ /dev/null
@@ -1,35 +0,0 @@
-#! /bin/sh
-
-#
-# NAME
-# checkfilelist - try retrieving files from server
-#
-# SYNOPSIS
-# checkfilelist servername portno filelist
-#
-#
-
-if test "$#" -lt 3 ; then
- echo "usage: $0 servername portno filelist"
- exit 2
-fi
-
-HOSTNAME=$1 ; export HOSTNAME
-PORTNO=$2 ; export PORTNO
-FILELIST=$3 ; export FILELIST
-
-grep '^/' $FILELIST | cut -f1 |
-(
-while read URL
-do
- export URL
- echo ">>>>> $URL"
- (
- telnet $HOSTNAME $PORTNO << _EOF_
-GET $URL HTTP/1.0
-
-_EOF_
- ) 2> /dev/null | head -5 | grep 'HTTP/1.0'
- killall telnet
-done
-)
diff --git a/apps/JAWS/clients/WebSTONE/bin/genfiles b/apps/JAWS/clients/WebSTONE/bin/genfiles
deleted file mode 100755
index d5f06aee6df..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/genfiles
+++ /dev/null
@@ -1,41 +0,0 @@
-#! /bin/sh
-#
-
-# get configuration
-. $WEBSTONEROOT/conf/testbed
-
-cat $WEBSTONEROOT/conf/fileset |
-nawk '
-($1 ~ /^[0-9][0-9]*[kK][bB]*$/) {
- sub(/[kK][bB]*/, "", $1);
- cmd = "$WEBSTONEROOT/bin/genrand " $1*1024 " " $2
- print cmd;
- system(cmd);
- next
-}
-
-($1 ~ /^[0-9][0-9]*[mM][bB]*$/) {
- sub(/[kK][bB]*/, "", $1);
- cmd = "$WEBSTONEROOT/bin/genrand " $1*1024*1024 " " $2
- print cmd;
- system(cmd);
- next
-}
-
-($1 ~ /^[0-9][0-9]*$/) {
- sub(/[kK][bB]*/, "", $1);
- cmd = "$WEBSTONEROOT/bin/genrand " $1 " " $2
- print cmd;
- system(cmd);
- next
-} ' $*
-
-# copy files
-files=`cat $WEBSTONEROOT/conf/fileset | cut -f2 -d' '`
-for f in $files
-do
- $RCP $f $SERVER:$WEBDOCDIR
- rm -f $f
-done
-
-#end
diff --git a/apps/JAWS/clients/WebSTONE/bin/genfiles-from-filelist.sh b/apps/JAWS/clients/WebSTONE/bin/genfiles-from-filelist.sh
deleted file mode 100755
index 1293709238c..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/genfiles-from-filelist.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/sh
-#
-
-# get configuration
-[ -n "$WEBSTONEROOT" ] || WEBSTONEROOT=`pwd`/..
-. $WEBSTONEROOT/conf/testbed
-
-case $# in
- 1)
- FILELIST=$1
- ;;
- *)
- FILELIST=$WEBSTONEROOT/conf/filelist
- ;;
-esac
-
-TIMESTAMP=`date +"%y%m%d_%H%M"`
-mkdir $TMPDIR/webstone-genfiles.$TIMESTAMP
-cd $TMPDIR/webstone-genfiles.$TIMESTAMP
-
-cat $FILELIST |
-nawk '
-($3 ~ /^\#[0-9]*/) {
- sub(/^\#/, "", $3);
- cmd = WEBSTONEROOT "/bin/genrand " $3 " ."$1
- print cmd;
- system(cmd);
- cmd = RCP " ." $1 " " SERVER ":" WEBDOCDIR
- print cmd;
- system(cmd);
- cmd = "rm -f ." $1
- print cmd;
- system(cmd);
- next
-}
-' $* WEBSTONEROOT=$WEBSTONEROOT RCP=$RCP SERVER=$SERVER WEBDOCDIR=$WEBDOCDIR
-
-cd $TMPDIR
-rm -rf $TMPDIR/webstone-genfiles.$TIMESTAMP
-
-#end
diff --git a/apps/JAWS/clients/WebSTONE/bin/gui-configure b/apps/JAWS/clients/WebSTONE/bin/gui-configure
deleted file mode 100755
index dcea4e3fe1c..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/gui-configure
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/bin/sh -- because we're not sure where perl is yet
-#
-
-'true' || eval 'exec perl -S $0 $argv:q';
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
-& eval 'exec /usr/local/bin/perl -S $0 $argv:q'
- if 0;
-
-# Usage: [perl] configure [file]
-#
-# This replaces the program paths (e.g. /bin/awk) with an
-# alternate path that is found in the file "file.paths". It also finds
-# perl5 and changes the path in all the stand-alone perl programs.
-#
-
-$debug = 0;
-
-#
-# Target shell scripts in question:
-@shell_scripts=("conf/paths.pl", "conf/paths.sh");
-@perl5_src = < bin/webstone-gui.pl bin/WebStone-common.pl bin/killbench.pl bin/view-results.pl bin/WebStone-manage.pl bin/move-filelist.pl bin/write-testbed.pl bin/WebStone-run.pl bin/move-runs.pl bin/WebStone-setup.pl bin/runbench.pl >;
-@perl_src = < bin/wscollect.pl bin/mine-logs.pl >;
-@benchmark_dir_src = < webstone bin/killbench bin/runbench >;
-
-# all the HTML browsers we know about, IN ORDER OF PREFERENCE!
-@all_www= ("netscape", "Mosaic", "xmosaic", "lynx");
-
-#
-# Potential directories to find commands; first, find the user's path...
-$PATH = $ENV{"PATH"};
-
-# additional dirs; *COLON* separated!
-$other_dirs="/usr/ccs/bin:/bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/ucb/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/bin/X11:/usr/X11/bin:/usr/openwin/bin";
-
-#
-# split into a more reasonable format. Personal aliases come last.
-@all_dirs = split(/:/, $other_dirs . ":" . $PATH);
-
-print "checking to make sure all the target(s) are here...\n";
-
-for (@shell_scripts) {
- die "ERROR -- $_ not found!\n" unless -f $_;
- }
-
-# find perl
-print "Trying to find perl...\n";
-for $dir (@all_dirs) {
- # first, find where it might be
- next if (! -d $dir);
- while (<$dir/perl*>) {
- if (-x $_) {
- $perl_version=`($_ -v 2> /dev/null) |
- awk '/This is perl/ { print $NF }'`;
- if ($perl_version) {
- $PERL=$_;
- $pflag="1";
- last;
- }
- }
- last if $pflag;
- }
- last if $pflag;
- }
-
-if ($PERL) {
- print "\nPerl is in $PERL\n";
- for (@perl_src) { $perl_src .= "$_ "; }
- print "\nchanging the source in: $perl_src\n";
- system "$PERL -pi -e \"s@^#!.*/perl.*@#!$PERL@;\" $perl_src";
-
- # make sure things are executable...
- system("chmod u+x $perl_src");
-}
-else
-{
- printf "\nSome WebStone functions require Perl\n" unless $PERL;
-}
-# end if $PERL
-
-# find perl5
-$pflag = 0;
-print "Trying to find perl5...\n";
-for $dir (@all_dirs) {
- # first, find where it might be; oftentimes you'll see perl,
- # perl4, perl5, etc. in the same dir
- next if (! -d $dir);
- while (<$dir/perl5* $dir/perl*>) {
- if (-x $_) {
- $perl_version=`($_ -v 2> /dev/null) |
- awk '/This is perl, version 5/ { print $NF }'`;
- if ($perl_version) {
- $PERL5=$_;
- $pflag="1";
- last;
- }
- }
- last if $pflag;
- }
- last if $pflag;
-}
-
-if ($PERL5) {
- print "\nPerl5 is in $PERL5\n";
-
- for (@perl5_src) { $perl5_src .= "$_ "; }
- print "\nchanging the source in: $perl5_src\n";
- system "$PERL5 -pi -e \"s@^#!.*/perl.*@#!$PERL5@;\" $perl5_src";
- system("chmod u+x $perl5_src");
-}
-else
-{
- printf "\nThe WebStone GUI requires Perl5\n" unless $PERL5;
-}
-#end if $PERL5
-
-# find the most preferred www viewer first.
-for $www (@all_www) {
- for $dir (@all_dirs) {
- if (!$MOSAIC) {
- if (-x "$dir/$www") {
- $MOSAIC="$dir/$www";
- next;
- }
- }
- }
- }
-if ($MOSAIC) {
- print "\nHTML/WWW Browser is $MOSAIC\n";
-
- $upper{"MOSAIC"} = $MOSAIC;
- }
-else { print "Cannot find a web browser! WebStone cannot be run except in CLI"; }
-
-print "\nOk, now doing substitutions on the shell scripts...\n";
-for $shell (@shell_scripts) {
- print "Changing paths in $shell...\n";
- die "Can't open $shell\n" unless open(SCRIPT, $shell);
- rename($shell, $shell . '.old');
- die "Can't open $shell\n" unless open(OUT, ">$shell");
-
- #
- # Open up the script, search for lines beginning with
- # stuff like "TEST", "AWK", etc. If the file ends in "pl",
- # assume it's a perl script and change it accordingly
- while (<SCRIPT>) {
- $found = 0;
- for $command (keys %upper) {
- if(/^\$?$command=/) {
- # shell script
- if ($shell !~ /.pl$/) {
- print OUT "$command=$upper{$command}\n"; }
- # perl script
- else {
- print OUT "\$" . "$command=\"$upper{$command}\";\n";
- }
- $found = 1;
- }
- }
- print OUT $_ if !$found;
-
- }
- close(SCRIPT);
- close(OUT);
- }
-
-
-for (@benchmark_dir_src) { $benchmark_dir_src .= "$_ "; }
-print "\nchanging the source in: $benchmark_dir_src\n";
-$BENCHMARK_DIR=`pwd`;
-chop $BENCHMARK_DIR;
-$BENCHMARK_DIR =~ s/\//\\\//g;
-system "$PERL -pi -e \"s/<BENCHMARK_DIR>/$BENCHMARK_DIR/\" $benchmark_dir_src";
-
-# done...
diff --git a/apps/JAWS/clients/WebSTONE/bin/killbench b/apps/JAWS/clients/WebSTONE/bin/killbench
deleted file mode 100755
index 2997d891dca..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/killbench
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh -x
-#
-# get configuration
-. $WEBSTONEROOT/conf/testbed
-
-for i in $CLIENTS
-do
- $RSH -l root $i /etc/killall $1 webclient
-done
-#
-sleep 1
-/etc/killall $1 webmaster
-/etc/killall $1 runbench
diff --git a/apps/JAWS/clients/WebSTONE/bin/killbench.pl b/apps/JAWS/clients/WebSTONE/bin/killbench.pl
deleted file mode 100755
index 42c616a79e0..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/killbench.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-html_begin();
-
-print CLIENT "<P>Killing WebStone processes<PRE>";
-system("$wd/bin/killbench");
-print CLIENT "</PRE><P>Done.";
-
-html_end();
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/mine-logs.pl b/apps/JAWS/clients/WebSTONE/bin/mine-logs.pl
deleted file mode 100755
index 1b721aa46ae..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/mine-logs.pl
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/pkg/gnu/bin//perl
-#
-# mine-logs.pl:
-# script to transform access logs into WebStone workload
-#
-# created 18 December 1995 mblakele@engr.sgi.com
-#
-# functional map:
-# usage: mine-logs.pl access.log
-#
-# 1. For each line in the input
-# a. parse the URL and the time, the outcome code, and the size
-# b. if the code is 200, and it's a GET,
-# do we already know about this URL?
-# i. yes - increment its counter
-# ii. no - create a slot for it, record size,
-# and set counter=1
-#
-
-$debug = 0;
-$line_number = 0;
-
-while (<>) {
- chomp;
-
- $line_number++;
- ($line_number % 1000) || printf STDERR ".";
- # parse line
- ( $client, $junk1, $junk2, $date, $timezone,
- $command, $url, $version, $result_code, $size ) =
- split;
- # strip some junk
- $command =~ s/\"//;
- $date =~ s/\[//;
-
- ($debug) && printf STDERR "$client, $date, $command, $url, $result_code, $size\n";
-
- # is it a GET? Did it succeed? (i.e., is the result code 200?)
- if (($command eq 'GET') && ($result_code == 200)) {
- # is this URL already in the key set?
- if (exists $counter{$url}) {
- # URL is in key set
- ($debug) && printf STDERR "URL $url already in key set: incrementing\n";
- $counter{$url}++;
- if ($size == $size{$url}) {
- ($debug) && printf STDERR "size mismatch on $url: $size != $size{$url}\n";
- if ($size <=> $size{$url}) { $size{$url} = $size; }
- }
- }
- else {
- # URL isn't in key set
- ($debug) && printf STDERR "URL $url isn't in key set: adding size $size\n";
- $counter{$url} = 1;
- $size{$url} = $size;
- }
- # end if key set
- } # end if GET
-}
-# end of input file
-printf STDERR "\n";
-
-# now we print out a workload file
-
-# first, the headline
-$date = `date`;
-chomp($date);
-printf "# WebStone workload file\n# \tgenerated by $0 $date\n#\n";
-
-# next, sort the keys
-@sorted_keys = sort by_counter keys(%counter);
-
-# iterate through sorted keys
-foreach $key (@sorted_keys) {
- # print url, weighting, and (commented) the size in bytes
- ($debug) && printf STDERR "printing data for $key\n";
- printf "$key\t$counter{$key}\t#$size{$key}\n";
-}
-# end foreach
-
-# end main
-
-sub
-by_counter {
- $counter{$b} <=> $counter{$a};
-}
-# end by_counter
-
-# end mine-logs.pl
diff --git a/apps/JAWS/clients/WebSTONE/bin/move-filelist.pl b/apps/JAWS/clients/WebSTONE/bin/move-filelist.pl
deleted file mode 100755
index 0155b83f972..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/move-filelist.pl
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-$oldfilelist = "$wd/conf/filelist";
-
-html_begin();
-
-if ($filelist ne $oldfilelist) {
- $backup = $oldfilelist . ".bak";
- print CLIENT "<BODY>Backing up $oldfilelist to $backup";
- rename($oldfilelist, $backup);
- print CLIENT "<P>Copying $filelist to $oldfilelist";
- link($filelist, $oldfilelist);
- print CLIENT "<P>Done.";
-}
-else
-{
- print CLIENT "<STRONG>Can't move $filelist <P>to $filelist</STRONG>";
-}
-
-html_end();
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/move-runs.pl b/apps/JAWS/clients/WebSTONE/bin/move-runs.pl
deleted file mode 100755
index a4ca528f034..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/move-runs.pl
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-html_begin();
-
-if ($runsdir ne $oldrunsdir) {
- print CLIENT "<BODY>Moving $oldrunsdir to $runsdir...";
- if (-e $runsdir) {
- print CLIENT "<STRONG>Error: $runsdir already exists!</STRONG>";
- }
- rename($oldrunsdir, $runsdir);
- print CLIENT "<P>Done.";
-}
-else
-{
- print CLIENT "<STRONG>Can't move $runsdir <P>to $oldrunsdir</STRONG>";
-}
-
-html_end();
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/rebootall b/apps/JAWS/clients/WebSTONE/bin/rebootall
deleted file mode 100755
index 2de65110027..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/rebootall
+++ /dev/null
@@ -1,9 +0,0 @@
-#! /bin/sh -x
-
-# get configuration
-. $WEBSTONEROOT/conf/testbed
-
-for i in $CLIENTS
-do
- $RSH -l root $i "sleep 5 ; init 6" &
-done
diff --git a/apps/JAWS/clients/WebSTONE/bin/runbench b/apps/JAWS/clients/WebSTONE/bin/runbench
deleted file mode 100755
index 409351f8f55..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/runbench
+++ /dev/null
@@ -1,193 +0,0 @@
-#!/bin/sh
-# $Header$
-# set -x
-set +x
-[ -n "$WEBSTONEROOT" ] || WEBSTONEROOT=`pwd`/../
-
-case $# in
- 1)
- FILELIST=$1
- ;;
- *)
- FILELIST=$WEBSTONEROOT/conf/filelist
- ;;
-esac
-
-# load configurations
-. $WEBSTONEROOT/conf/testbed
-
-[ -n "$DEBUG" ] && set +x
-
-# check variables
-[ -n "$ITERATIONS" ] || ITERATIONS="1"
-[ -n "$MINCLIENTS" ] || MINCLIENTS="1"
-[ -n "$MAXCLIENTS" ] || MAXCLIENTS="1"
-[ -n "$CLIENTINCR" ] || CLIENTINCR="1"
-[ -n "$TIMEPERRUN" ] || TIMEPERRUN="1"
-# don't care about PROXYSERVER
-[ -n "$SERVER" ] || SERVER="www"
-[ -n "$PORTNO" ] || PORTNO="80"
-# [ -n "$SERVERINFO" ] || SERVERINFO="uname -a"
-# OSTUNINGFILES
-# WEBSERVERDIR
-# WEBDOCDIR
-# WEBSERVERTUNINGFILES
-[ -n "$CLIENTS" ] || CLIENTS="localhost"
-[ -n "$CLIENTACCOUNT" ] || CLIENTACCOUNT=$USER
-[ -n "$CLIENTPASSWORD" ] || CLIENTPASSWORD=$CLIENTACCOUNT
-# [ -n "$CLIENTINFO" ] || CLIENTINFO="uname -a"
-[ -n "$TMPDIR" ] || TMPDIR="/tmp"
-[ -n "$RCP" ] || RCP="rcp"
-[ -n "$RSH" ] || RSH="rsh"
-
-export ITERATIONS MINCLIENTS MAXCLIENTS CLIENTINCR TIMEPERRUN
-export SERVER PORTNO SERVERINFO
-export CLIENTS CLIENTACCOUNT CLIENTPASSWORD CLIENTINFO
-export TMPDIR RCP RSH
-
-echo "Clients: " $CLIENTS
-
-#
-# Estimate run time
-#
-NUMCLIENTHOSTS=`echo $CLIENTS | wc -w`
-TRIALS=`expr 1 + \( $MAXCLIENTS - $MINCLIENTS \) / $CLIENTINCR`
-RUNTIME=`expr 60 \* $ITERATIONS \* $TRIALS \* $TIMEPERRUN`
-RUNTIME=`expr $RUNTIME + $TRIALS \* \( $MAXCLIENTS + $MINCLIENTS \) \
- / \( 2 \* $NUMCLIENTHOSTS \)`
-
-echo "Estimated run time:" `expr $RUNTIME / 3600` "hours" \
- `expr $RUNTIME % 3600 / 60` "minutes"
-
-#
-# Checking for valid set of benchmark files to retrieve
-#
-#if [ -z "$PROXYSERVER" ]
-#then
-# echo "Checking for a valid set of benchmark files"
-# CHECKLISTTMP=$TMPDIR/webstone-checkfilelist.$$
-# rm -f $CHECKFILELISTTMP
-# $WEBSTONEROOT/bin/checkfilelist $SERVER $PORTNO $FILELIST > $CHECKLISTTMP 2>&1
-# if [ `grep -c ' 4[0-9][0-9] '< $CHECKLISTTMP` -gt 0 ]
-# then
-# echo "ERROR: not all files in filelist are on server:"
-# echo "----- checkfilelist results -----"
-# cat $CHECKLISTTMP
-# echo "----- checkfilelist results -----"
-# rm -f $CHECKLISTTMP
-# exit 1
-# else
-# echo "OK: All files found"
-# fi
-# rm -f $CHECKLISTTMP
-#fi
-# end if $PROXYSERVER
-
-#
-# distribute webclient binary
-#
-for i in $CLIENTS
-do
- $RCP $WEBSTONEROOT/bin/webclient $i:$TMPDIR #/usr/local/bin
-done
-
-# BEGIN iterations
-J=1
-while [ $J -le $ITERATIONS ]
-do
- NUMCLIENTS=$MINCLIENTS
- while [ $NUMCLIENTS -le $MAXCLIENTS ]
- do
- echo "***** Iteration $J, Total clients "`expr $NUMCLIENTS`" **********"
- date
- TIMESTAMP=`date +"%y%m%d_%H%M"`
- LOGDIR=$WEBSTONEROOT/bin/runs/$TIMESTAMP
-
- #
- # nuke debug files
- #
- for client in $CLIENTS
- do
- $RSH $client "rm /tmp/webstone-debug*" > /dev/null 2>&1
- done
-
- mkdir -p $LOGDIR
- rm -f $LOGDIR/config
- touch $LOGDIR/config
- CLIENTSPERHOST=`expr $NUMCLIENTS / $NUMCLIENTHOSTS`
- EXTRACLIENTS=`expr $NUMCLIENTS % $NUMCLIENTHOSTS`
-
- for i in $CLIENTS
- do
- if [ $EXTRACLIENTS -gt 0 ]
- then
- echo "$i $CLIENTACCOUNT $CLIENTPASSWORD `expr $CLIENTSPERHOST + 1`" \
- >> $LOGDIR/config
- EXTRACLIENTS=`expr $EXTRACLIENTS - 1`
- else
- echo "$i $CLIENTACCOUNT $CLIENTPASSWORD $CLIENTSPERHOST" \
- >> $LOGDIR/config
- fi
- done
- cp $FILELIST $LOGDIR/`basename $FILELIST`
-
- #
- # Put test configuration files on clients
- #
- for i in $CLIENTS localhost
- do
- $RSH $i "rm -f $TMPDIR/config $TMPDIR/`basename $FILELIST`"
- $RCP $LOGDIR/config $i:$TMPDIR/config
- $RCP $LOGDIR/`basename $FILELIST` $i:$TMPDIR/filelist
- done
-
- #
- # Get starting configuration and stats from each participant
- #
- $RSH $SERVER "$SERVERINFO" > $LOGDIR/hardware.$SERVER 2>&1
- for i in $CLIENTS
- do
- $RSH $i "$CLIENTINFO" > $LOGDIR/hardware.$i 2>&1
- done
-
- # set -x
- for i in $OSTUNINGFILES $WEBSERVERTUNINGFILES
- do
- $RCP $SERVER:$i $LOGDIR
- done
- set +x
-
- #
- # Run benchmark
- #
- date
- CMD="$WEBSTONEROOT/bin/webmaster -v -u $TMPDIR/filelist"
- CMD=$CMD" -f $TMPDIR/config -l $TIMEPERRUN"
- [ -n "$SERVER" ] && CMD=$CMD" -w $SERVER"
- [ -n "$PORTNO" ] && CMD=$CMD" -p $PORTNO"
- [ -n "$PROXYSERVER" ] && CMD=$CMD" -P $PROXYSERVER"
- [ -n "$DEBUG" ] && CMD=$CMD" -d"
- echo $CMD
-
- # dump environment into $LOGDIR
- rm -rf $LOGDIR/controller.env
- env > $LOGDIR/controller.env
-
- $CMD | tee $LOGDIR/run
-
- #
- # Get ending configuration and stats from each participant
- #
- date
- #for i in $SERVER $CLIENTS
- #do
- #$WEBSTONEROOT/bin/getstats $i > $LOGDIR/end.$i 2>&1
- #done
- #date
- NUMCLIENTS=`expr $NUMCLIENTS + $CLIENTINCR`
- done
- # while NUMCLIENTS
- J=`expr $J + 1`
-done
-# while J
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/runbench.pl b/apps/JAWS/clients/WebSTONE/bin/runbench.pl
deleted file mode 100755
index 81071504f1a..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/runbench.pl
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-require('flush.pl');
-
-# force flush after every write or print
-$| = 1;
-
-html_begin("In Progress");
-
-print CLIENT "<H3><CENTER>Running WebStone</CENTER></H3><PRE>";
-show_model();
-&flush(CLIENT);
-&flush(STDOUT);
-
-&start_runbench();
-
-print CLIENT <<EOF
-<TITLE>WebStone Completed</TITLE>
-</PRE><CENTER>
-<FORM METHOD=POST ACTION="http://localhost:$html_port$wd/bin/view-results.pl">
-<INPUT TYPE="submit" VALUE="View Results">
-</CENTER>
-EOF
- ;
-
-html_end();
-
-sub start_runbench {
- $command = "cd $wd/bin; ./runbench";
- system($command);
-}
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/tabs2html b/apps/JAWS/clients/WebSTONE/bin/tabs2html
deleted file mode 100755
index 8c7d851c357..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/tabs2html
+++ /dev/null
@@ -1,13 +0,0 @@
-#! /bin/sh
-
-nawk '
-BEGIN { FS=" " ; print "<BODY><TABLE>" }
-{
- print "<TR ALIGN=RIGHT VALIGN=BOTTOM>"
- for (i=1; i <= NF; i++) {
- print "<TD>" $i "</TD>"
- }
- print "</TR>"
-}
-END { print "</TABLE></BODY>" }
-' $*
diff --git a/apps/JAWS/clients/WebSTONE/bin/view-results.pl b/apps/JAWS/clients/WebSTONE/bin/view-results.pl
deleted file mode 100755
index 7ff961efcca..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/view-results.pl
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-require('wscollect.pl');
-
-$debug = 0;
-
-$printedTitles = 0;
-
-html_begin("Results");
-
-print CLIENT "<H3>WebStone Results</H3>";
-
-($debug) && print STDERR "opening table\n";
-print CLIENT "<BODY><TABLE BORDER=1>\r";
-
-@directories = ("$wd/bin/runs");
-directory: for (@directories) {
- &find($_);
-}
-
-($debug) && print STDERR "closing table\n";
-print CLIENT "</TABLE></BODY>\r";
-
-html_end();
-
-# end main
-
-sub printcustom {
- if (!$printedTitles) {
- $printedTitles = 1;
- print CLIENT "<TR>";
- for $title (@title) {
- print CLIENT "<TH>$title</TH>\r";
- } # end for title
- print CLIENT "</TR>\r";
- }
- print CLIENT "<TR>";
- $first_column = 1;
- for $data (@data) {
- if ($first_column) {
- $first_column = 0;
- print CLIENT "<TD><A HREF=$wd/bin/runs/$data>$data</A></TD>\r";
- } else {
- print CLIENT "<TD ALIGN=RIGHT>$data</TD>\r";
- }
- } # end for data
- print CLIENT "</TR>\r";
-}
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl b/apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl
deleted file mode 100755
index 006cd9eba7c..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl
+++ /dev/null
@@ -1,316 +0,0 @@
-#!/pkg/gnu/bin//perl5
-
-require 'conf/paths.pl';
-
-#$debug = 1;
-$HELPME="http://reality.sgi.com/employees/mblakele_engr/WebStone/";
-$| = 1; # set pipes to hot
-
-&html();
-
-sub html {
- local($helper, $wd);
-
- &start_html_server();
- # These strings are used in, among others, PERL-to-HTML scripts.
- #
- $wd = `pwd`;
- chop $wd;
-
- print "$html_port\n" if $debug;
-
- $HTML_STARTPAGE = "http://localhost:$html_port$wd/doc/WebStone.html";
-
- #
- # Fork off the HTML client, and fork off a server process that
- # handles requests from that client. The parent process waits
- # until the client exits and terminates the server.
- #
- print "Starting $MOSAIC...\n" if $debug;
-
- if (($client = fork()) == 0) {
- foreach (keys %ENV) {
- delete $ENV{$_} if (/proxy/i && !/no_proxy/i);
- }
- exec($MOSAIC, "$HTML_STARTPAGE")
- || die "cannot exec $MOSAIC: $!";
- }
-
- if (($server = fork()) == 0) {
- if (($helper = fork()) == 0) {
- alarm 3600;
- &patience();
- }
- kill 'TERM',$helper;
- $SIG{'PIPE'} = 'IGNORE';
- for (;;) {
- accept(CLIENT, SOCK) || die "accept: $!";
- select((select(CLIENT), $| = 1)[0]);
- &process_html_request();
- close(CLIENT);
- }
- }
-
- #
- # Wait until the client terminates, then terminate the server.
- #
- close(SOCK);
- waitpid($client, 0);
- kill('TERM', $server);
- exit;
-}
-
-#
-# Set up a listener on an arbitrary port. There is no good reason to
-# listen on a well-known port number.
-#
-sub start_html_server {
- local($sockaddr, $proto, $junk);
-
- $AF_INET = 2;
- $SOCK_STREAM = 2;
- $PORT = 0; #1024;
-
- $sockaddr = 'S n a4 x8';
- $this = pack($sockaddr, $AF_INET, $PORT, "\0\0\0\0");
- ($junk, $junk, $proto) = getprotobyname('tcp');
- socket(SOCK, $AF_INET, $SOCK_STREAM, $proto) || die "socket: $!";
- setsockopt(SOCK, 0xffff, 0x0004, 1) || die "setsockopt: $!";
- bind(SOCK, $this) || die "bind: $!";
- listen(SOCK, 1) || die "listen: $!";
- ($junk, $html_port) = unpack($sockaddr, getsockname(SOCK));
-}
-
-
-#
-# Process one client request. We expect the client to send stuff that
-# begins with:
-#
-# command /password/perl_script junk
-#
-# Where perl_script is the name of a perl file that is executed via
-# do "perl_script";
-#
-# In case of a POST command the values in the client's attribute-value
-# list are assigned to the corresponding global PERL variables.
-#
-sub process_html_request {
- local($request, $command, $script, $magic, $url, $peer);
- local(%args);
-
- #
- # Parse the command and URL. Update the default file prefix.
- #
- $request = <CLIENT>;
- print $request if $debug;
- ($command, $url) = split(/\s+/, $request);
- if ($command eq "" || $command eq "QUIT") {
- return;
- }
-
- #($junk, $script) = split(/\//, $url, 2);
- #($script, $html_script_args) = split(',', $script, 2);
- #($HTML_CWD = "file:$script") =~ s/\/[^\/]*$//;
- $script = $url;
-
- while (<CLIENT>) {
- last if (/^\s+$/);
- }
-
- if ($command eq "GET") {
- if (-d $script) {
- get_dir($script);
- }
- elsif ($script =~ /\.pl\b/) {
- perl_html_script($script);
- }
- else {
- get_file($script);
- }
- } elsif ($command eq "POST") {
-
- print $request if $debug;
- flush;
- #
- # Process the attribute-value list.
- #
- if ($_ = <CLIENT>) {
- print "Hi $_" if $debug;
- flush;
- s/\s+$//;
- s/^/\n/;
- s/&/\n/g;
- $html_post_attributes = '';
- $* = 1;
- for (split(/(%[0-9][0-9A-Z])/, $_)) {
- $html_post_attributes .= (/%([0-9][0-9A-Z])/) ?
- pack('c',hex($1)) : $_;
- }
- %args = ('_junk_', split(/\n([^=]+)=/, $html_post_attributes));
- delete $args{'_junk_'};
- for (keys %args) {
- print "\$$_ = $args{$_}\n" if $debug;
- ${$_} = $args{$_};
- }
- perl_html_script($script);
- } else {
- &bad_html_form($script);
- }
- } else {
- &bad_html_command($request);
- }
-}
-
-
-#
-# Unexpected HTML command.
-#
-sub bad_html_command {
- local($request) = @_;
-
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>Unknown command</TITLE>
-<LINK REV="made" HREF=$HELPME>
-</HEAD>
-<BODY>
-<H1>Unknown command</H1>
-The command <TT>$request<TT> was not recognized.
-</BODY>
-</HTML>
-EOF
-;
-}
-
-#
-# Execute PERL script
-#
-sub perl_html_script {
- local($script) = @_;
-
- if (! -e $script) {
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>File not found</TITLE>
-<LINK REV="made" HREF=$HELPME>
-</HEAD>
-<BODY>
-<H1>File not found</H1>
-The file <TT>$script</TT> does not exist or is not accessible.
-</BODY>
-</HTML>
-EOF
-; return;
- }
- do $script;
- if ($@ && ($@ ne "\n")) {
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>Command failed</TITLE>
-<LINK REV="made" HREF=$HELPME>
-</HEAD>
-<BODY>
-<H1>Command failed</H1>
-$@
-</BODY>
-</HTML>
-EOF
-;
- }
-}
-
-#
-# Missing attribute list
-#
-sub bad_html_form {
- local($script) = @_;
-
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>No attribute list</TITLE>
-<LINK REV="made" HREF=$HELPME>
-</HEAD>
-<BODY>
-<H1>No attribute list</H1>
-
-No attribute list was found.
-</BODY>
-</HTML>
-EOF
-;
-}
-
-#
-# Give them something to read while the server is initializing.
-#
-sub patience {
- for (;;) {
- accept(CLIENT, SOCK) || die "accept: $!";
- <CLIENT>;
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>Initializing...</TITLE>
-<LINK REV="made" HREF=$HELPME>
-</HEAD>
-<BODY>
-<H1>Initializing...</H1>
-WebStone is initializing...
-</BODY>
-</HTML>
-EOF
-;
- close(CLIENT);
- }
-}
-
-sub get_file {
- local($file) = @_;
-
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>$file</TITLE>
-</HEAD>
-<H1>$file</H1>
-<BODY><PRE>
-EOF
- unless ($file =~ /(html|htm|gif|jpeg|jpg)\b/);
-
- open(FILE, $file);
- while (<FILE>) {
- print CLIENT $_;
- }
- close(FILE);
-
- print CLIENT <<EOF
-</PRE>
-</HTML>
-EOF
- unless ($file =~ /(html|htm|gif|jpeg|jpg)\b/);
-}
-
-sub get_dir {
- local($dir) = @_;
- opendir(DIRECTORY, $dir);
- @listing = readdir(DIRECTORY);
- closedir(DIRECTORY);
- print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>$dir</TITLE>
-</HEAD>
-<H1>$dir</H1>
-<BODY>
-EOF
- ;
-
- while (<@listing>) {
- print CLIENT "<P><A HREF=$dir/$_>$_</A>";
- }
- print CLIENT "</HTML>";
-}
diff --git a/apps/JAWS/clients/WebSTONE/bin/write-testbed.pl b/apps/JAWS/clients/WebSTONE/bin/write-testbed.pl
deleted file mode 100755
index 9f2c75af0ba..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/write-testbed.pl
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-# write new values from form to $wd/conf/testbed, and run WebStone
-#
-
-push(@INC, "$wd/bin");
-require('WebStone-common.pl');
-
-html_begin("Current Configuration");
-
-&show_model();
-&write_data();
-
-print CLIENT <<EOF
-<HR>
-<FORM METHOD="POST" ACTION="$wd/bin/runbench.pl">
-<P><INPUT TYPE="SUBMIT" VALUE="Run WebStone">
-</FORM>
-</DL>
-
-EOF
- ;
-
-html_end();
-
-# end main
-
-sub write_data {
- rename("$wd/conf/testbed", "$wd/conf/testbed.bak") ||
- die "rename testbed: $!\n";
- open(TESTBED, ">>$wd/conf/testbed") || die "open testbed: $!\n";
-
- print CLIENT "<PRE>";
-
- foreach $key (@keylist) {
- $$key =~ s/\+/ /g;
- $newvalue = "$key=\"$$key\"\n";
- print CLIENT $newvalue;
- print TESTBED $newvalue;
- }
-
- print CLIENT "</PRE>";
-
- close(TESTBED);
-}
-
-# end
diff --git a/apps/JAWS/clients/WebSTONE/bin/wscollect.pl b/apps/JAWS/clients/WebSTONE/bin/wscollect.pl
deleted file mode 100755
index adf5fee56eb..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/wscollect.pl
+++ /dev/null
@@ -1,139 +0,0 @@
-#!/pkg/gnu/bin//perl
-# $Header$
-# updated version of the old wscollect script which goes through
-# webstone run directories and summarizes the output in tabular
-# format.
-# syc 4/25/96
-#
-
-require "find.pl";
-
-#
-# the list @runs contains the timestamps for the runs which are found
-# during the traversal of the runs directory. This list is used for
-# indices into the associative arrays for storing run information.
-#
-# $numclients{ $time } - number of clients for the run
-# $connrate{ $time } - connection rate average
-# $littlesload{ $time } - little's load factor
-# $latency{ $time } - latency average
-# $error{ $time } - error rate
-# $throughput{ $time } - throughput
-
-local( @runs,
- %numclients,
- %connrate,
- %littlesload,
- %latency,
- %error,
- %throughput);
-
-# Got rid of the trick hack of the title names, someone can put it
-# back in later
-@title = ( "Timestamp",
- "Total number of clients",
- "Connection rate average (conn/s)",
- "Little's Load Factor",
- "Average Latency (seconds)",
- "Error Level (%)",
- "Throughput avg. for all connections (MBits/s)");
-
-
-push( @ARGV, ".") if ( !@ARGV );
-
-for (@ARGV) {
- &find( $_ );
-}
-
-&PrintOutput;
-
-1;
-
-sub wanted {
- local( $filename ) = $_;
-
- return unless ( $filename =~ /run/ );
-
- local( $instats) = 0;
- local( $runtime, $tag, $data, $cruft, @cruft );
-
- open( FILE, $filename ) || return; # bail if failed to open
- $runtime = `pwd`;
- @cruft = split(/\//,$runtime);
- $runtime = pop( @cruft);
- chop( $runtime);
- push( @runs, $runtime);
- while ( $line = <FILE>) {
- if (! $instats) {
- $instats = 1 if ( $line =~ /^WEBSTONE 2\.0 results/ );
- next;
- }
- chop( $line );
- ( $tag, $data ) = split( /:?\s{2,}|\t/, $line);
-
- # perl hack to emulate case/switch statement
- $tag =~ /number of clients/ &&
- ($numclients{ $runtime } = $data, next);
- $tag =~ /error rate/ &&
- (( $error{ $runtime }) = $data =~ /([\d\.]+)/, next);
- $tag =~ /connection rate/ &&
- (( $connrate{ $runtime }) = $data =~ /([\d\.]+)/, next);
- $tag =~ /Server thruput/ &&
- (( $throughput{ $runtime }) = $data =~ /([\d\.]+)/, next);
- $tag =~ /Little's Load/ &&
- (( $littlesload{ $runtime}) = $data =~ /([\d\.]+)/, next); # '
- $tag =~ /Average response time/ &&
- (( $latency{ $runtime } ) = $data =~ /([\d\.]+)/, next);
- }
- close( FILE );
- unless ( $throughput{ $runtime} ) {
- pop( @runs); # if we didn't get a throughput, then the
- # data is incomplete and just drop this run
- }
-}
-
-
-sub printdata {
- local ($timestamp, $num_clients, $conn_rate,
- $load, $latency, $error, $tput) = @_;
- format STDOUT =
-@<<<<<<<<<<< @###### @######.## @####.## @###.#### @####.#### @######.##
-$timestamp, $num_clients, $conn_rate, $load, $latency, $error, $tput
-.
-
- if (!$printedTitles) {
- $printedTitles = 1;
- ($ttimestamp, $tnum_clients, $tconn_rate,
- $tload, $tlatency, $terror, $ttput) = @title;
- format STDOUT_TOP =
-^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||
-$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput
-^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||
-$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput
-^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||
-$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput
-^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||
-$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput
-^||||||||||| ^||||||| ^||||||||| ^||||||| ^||||||||| ^||||||||| ^|||||||||||
-$ttimestamp, $tnum_clients, $tconn_rate, $tload, $tlatency, $terror, $ttput
-----------------------------------------------------------------------------
-.
- # write STDOUT_TOP;
- } # end if printedTitles
- write STDOUT;
-}
-
-sub PrintOutput {
- local( $runtime );
-
- for $runtime (sort @runs) {
- &printdata( $runtime, $numclients{ $runtime}, $connrate{ $runtime},
- $littlesload{ $runtime}, $latency{ $runtime}, $error{ $runtime},
- $throughput{ $runtime});
- }
-}
-
-
-
-
-
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist b/apps/JAWS/clients/WebSTONE/conf/filelist
deleted file mode 100644
index 5368e28e460..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist
+++ /dev/null
@@ -1,6 +0,0 @@
-# Sample filelist, abstracted from access logs
-/file500.html 350 #500
-/file5k.html 500 #5125
-/file50k.html 140 #51250
-/file500k.html 9 #512500
-/file5m.html 1 #5248000
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist.cgi-heavy b/apps/JAWS/clients/WebSTONE/conf/filelist.cgi-heavy
deleted file mode 100644
index 84272eee0f7..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist.cgi-heavy
+++ /dev/null
@@ -1,6 +0,0 @@
-# Modified sample model; fully dynamic content
-/file.cgi-send?size=500 350
-/file.cgi-send?size=5125 500
-/file.cgi-send?size=51250 140
-/file.cgi-send?size=512500 9
-/file.cgi-send?size=5248000 1
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-heavy b/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-heavy
deleted file mode 100644
index de9c4fe4765..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-heavy
+++ /dev/null
@@ -1,6 +0,0 @@
-# Modified sample model; fully dynamic content
-/file.dyn-send?size=500 350
-/file.dyn-send?size=5125 500
-/file.dyn-send?size=51250 140
-/file.dyn-send?size=512500 9
-/file.dyn-send?size=5248000 1
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-light b/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-light
deleted file mode 100644
index 2c35810e75d..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-light
+++ /dev/null
@@ -1,6 +0,0 @@
-# Modified sample model; added light dynamic content use
-/file500.html 350 #500
-/file5k.html 500 #5125
-/file.dyn-send?size=51250 140
-/file500k.html 9 #512500
-/file5m.html 1 #5248000
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-medium b/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-medium
deleted file mode 100644
index 2a0abbb2b9f..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-medium
+++ /dev/null
@@ -1,6 +0,0 @@
-# Modified sample model; added medium dynamic content use
-/file.dyn-send?size=500 350
-/file5k.html 500 #5125
-/file.dyn-send?size=51250 140
-/file500k.html 9 #512500
-/file5m.html 1 #5248000
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist.homepage b/apps/JAWS/clients/WebSTONE/conf/filelist.homepage
deleted file mode 100644
index b759828757a..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist.homepage
+++ /dev/null
@@ -1,2 +0,0 @@
-# home page /index.html only
-/index.html
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist.sample b/apps/JAWS/clients/WebSTONE/conf/filelist.sample
deleted file mode 100644
index 5368e28e460..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist.sample
+++ /dev/null
@@ -1,6 +0,0 @@
-# Sample filelist, abstracted from access logs
-/file500.html 350 #500
-/file5k.html 500 #5125
-/file50k.html 140 #51250
-/file500k.html 9 #512500
-/file5m.html 1 #5248000
diff --git a/apps/JAWS/clients/WebSTONE/conf/filelist.standard b/apps/JAWS/clients/WebSTONE/conf/filelist.standard
deleted file mode 100644
index 5368e28e460..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/filelist.standard
+++ /dev/null
@@ -1,6 +0,0 @@
-# Sample filelist, abstracted from access logs
-/file500.html 350 #500
-/file5k.html 500 #5125
-/file50k.html 140 #51250
-/file500k.html 9 #512500
-/file5m.html 1 #5248000
diff --git a/apps/JAWS/clients/WebSTONE/conf/fileset b/apps/JAWS/clients/WebSTONE/conf/fileset
deleted file mode 100644
index 064fd7b3098..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/fileset
+++ /dev/null
@@ -1,32 +0,0 @@
-0k file0k.html
-500 file500.html
-1k file1k.html
-2k file2k.html
-3k file3k.html
-4k file4k.html
-5k file5k.html
-6k file6k.html
-7k file7k.html
-8k file8k.html
-9k file9k.html
-10k file10k.html
-11k file11k.html
-12k file12k.html
-13k file13k.html
-14k file14k.html
-15k file15k.html
-16k file16k.html
-17k file17k.html
-18k file18k.html
-19k file19k.html
-20k file20k.html
-21k file21k.html
-29k file29k.html
-33k file33k.html
-45k file45k.html
-50k file50k.html
-64k file64k.html
-115k file115k.html
-200k file200k.html
-500k file500k.html
-5m file5m.html
diff --git a/apps/JAWS/clients/WebSTONE/conf/paths.pl b/apps/JAWS/clients/WebSTONE/conf/paths.pl
deleted file mode 100755
index 38319c40f4e..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/paths.pl
+++ /dev/null
@@ -1,2 +0,0 @@
-$MOSAIC="/pkg/www/bin/netscape";
-
diff --git a/apps/JAWS/clients/WebSTONE/conf/paths.pl.old b/apps/JAWS/clients/WebSTONE/conf/paths.pl.old
deleted file mode 100644
index 9bfc17bef8c..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/paths.pl.old
+++ /dev/null
@@ -1,2 +0,0 @@
-$MOSAIC="/usr/bin/X11/netscape";
-
diff --git a/apps/JAWS/clients/WebSTONE/conf/paths.sh b/apps/JAWS/clients/WebSTONE/conf/paths.sh
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/paths.sh
+++ /dev/null
diff --git a/apps/JAWS/clients/WebSTONE/conf/paths.sh.old b/apps/JAWS/clients/WebSTONE/conf/paths.sh.old
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/paths.sh.old
+++ /dev/null
diff --git a/apps/JAWS/clients/WebSTONE/conf/testbed b/apps/JAWS/clients/WebSTONE/conf/testbed
deleted file mode 100644
index 13452b41a56..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/testbed
+++ /dev/null
@@ -1,33 +0,0 @@
-### BENCHMARK PARAMETERS -- EDIT THESE AS REQUIRED
-ITERATIONS="1"
-MINCLIENTS="15"
-MAXCLIENTS="15"
-CLIENTINCR="3"
-### this is actually the number of loops:
-TIMEPERRUN="1000"
-
-
-### SERVER PARAMETERS -- EDIT AS REQUIRED
-PROXYSERVER=
-SERVER="tango-cip"
-PORTNO=6666
-SERVERINFO=uname
-#OSTUNINGFILES="/var/sysgen/master.d/bsd"
-#OSTUNINGFILES="/dev/null"
-#WEBSERVERDIR="/usr/ns-home"
-#WEBDOCDIR="$WEBSERVERDIR/docs"
-#WEBSERVERTUNINGFILES="$WEBSERVERDIR/httpd-80/config/magnus.conf $WEBSERVERDIR/httpd-80/config/obj.conf"
-
-# WE NEED AN ACCOUNT WITH A FIXED PASSWORD, SO WE CAN REXEC
-# THE WEBSTONE CLIENTS
-CLIENTS="mambo merengue lambada"
-#CLIENTS="lindy cumbia"
-CLIENTACCOUNT=sumedh
-CLIENTPASSWORD=yourpasswd
-CLIENTINFO=uname
-TMPDIR=/tmp
-
-# Possibly system-specific
-RCP="rcp"
-RSH="rsh"
-
diff --git a/apps/JAWS/clients/WebSTONE/doc/COPYING b/apps/JAWS/clients/WebSTONE/doc/COPYING
deleted file mode 100644
index 13057b45514..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/COPYING
+++ /dev/null
@@ -1,348 +0,0 @@
- While most of the source code in WebStone is covered by the terms
-in the file LICENSE, the following files are covered by the GNU license,
-reproduced below:
-
- config.guess
- config.sub
-
------------------------------
-
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/apps/JAWS/clients/WebSTONE/doc/FAQ-webstone.html b/apps/JAWS/clients/WebSTONE/doc/FAQ-webstone.html
deleted file mode 100644
index 0adad2fd6f7..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/FAQ-webstone.html
+++ /dev/null
@@ -1,402 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<HTML VERSION="2.0">
-<HEAD>
-<!-- WEBMAGIC VERSION NUMBER="2.0.1" -->
-<!-- WEBMAGIC TRANSLATION NAME="ServerRoot" SRC="/var/www/htdocs/" DST="/" -->
-<!-- WEBMAGIC TRANSLATION NAME="ProjectRoot" SRC="./" DST="" -->
-<TITLE>WebStone FAQ</TITLE>
-</HEAD>
-<BODY>
-<P><!-- Changed by: Michael Blakeley, 9-Nov-1995 --></P>
-<H1><IMG SRC="webstone.gif" WIDTH="534" HEIGHT="174" SGI_SETWIDTH SGI_SETHEIGHT SGI_FULLPATH="/disk6/WebStone-2.0/doc/webstone.gif"></H1>
-<CENTER><H1 ALIGN="CENTER">WebStone</H1>
-</CENTER><CENTER><H2 ALIGN="CENTER">Frequently Asked Questions, with Answers</H2>
-</CENTER><CENTER><ADDRESS ALIGN="CENTER"><A HREF="mailto:schan@engr.sgi.com">Stephen Chan, schan@engr.sgi.com</A></ADDRESS>
-</CENTER><CENTER><ADDRESS ALIGN="CENTER"><A HREF="http://www.sgi.com/Products/WebFORCE/">WebFORCE</A> Technical Marketing, <A HREF="http://www.sgi.com">Silicon Graphics</A></ADDRESS>
-</CENTER><CENTER><ADDRESS ALIGN="CENTER">Last revised: 9 November 1995</ADDRESS>
-</CENTER><HR>
-<P><STRONG>This document answers frequently-asked questions about WebStone.</STRONG> </P>
-<UL>
-<LI><A HREF="#meta-FAQ">Meta-FAQ</A>: What is this document? Where can I get a copy?
-<LI><A HREF="#diff">What is the difference between WebStone 1.1 and WebStone 2.0?</A>
-<LI><A HREF="#compare1.1&amp;2">Can I compare WebStone 1.1 and WebStone 2.0 numbers against each other?</A>
-<LI><A HREF="#what-is">What is WebStone?</A>
-<LI><A HREF="#webperf">What about Webperf?</A>
-<LI><A HREF="#what-does">What does WebStone do?</A>
-<LI><STRONG><A HREF="#_wmh2_815967937">Feature Enhancements in WebStone 2.0</STRONG></A>
-<LI><A HREF="#does-not">What doesn't WebStone do?</A>
-<LI><A HREF="#obtaining">Where can I get WebStone?</A>
-<LI><A HREF="#running">How do I run WebStone?</A>
-<UL>
-<LI>Experimental GUI
-</UL>
-<LI><A HREF="#common-problems">Common problems when running WebStone</A>
-<UL>
-<LI><A HREF="#swap-space">Out of swap space</A>
-<LI><A HREF="#timing-info">Error reading timing info</A>
-</UL>
-<LI><A HREF="#interpreting">What do the results mean?</A>
-<LI><A HREF="#majordomo">I'm still having problems. Where can I get help?</A>
-<LI><A HREF="#legal">Legal issues</A>
-</UL>
-<P>If you have comments about this document, please forward them to the <A HREF="mailto:mblakele@engr.sgi.com">author</A>. </P>
-<HR>
-<H2><A NAME="meta-FAQ">Meta-FAQ: What is this document? Where can I get a copy?</A></H2>
-<P>This is a list of answers to Frequently Asked Questions (FAQ) about WebStone.
-The latest copy is always available at <A HREF="http://www.sgi.com/Products/WebFORCE/WebStone">http://www.sgi.com/Products/WebFORCE/WebStone/</A> and via the WebStone mailing list. The FAQ is periodically posted to the <A HREF="#majordomo">WebStone mailing list</A>, and to the USENET newsgroup <A HREF="news:comp.benchmarks">comp.benchmarks</A>. </P>
-<HR>
-<H2><A NAME="diff">What is the difference between WebStone 1.1 and WebStone 2.0?</A></H2>
-<P>WebStone 2.0 is a rewrite of the WebStone 1.1 code. Significant changes
-have been made both in the code and in the fileset and run rules. Many bugs
-were eliminated, support for other platforms has been included and many
-new features have been added. The WebStone 1.1 and WebStone 2.0 numbers
-cannot be compared, since so much has changed. In general, WebStone 1.1
-will give higher connections/second values, but lower throughput numbers
-than WebStone 2.0.</P>
-<HR>
-<H2><A NAME="compare1.1&amp;2">Can I compare WebStone 1.1 and WebStone 2.0 numbers against each other?</A></H2>
-<P>Absolutely NOT! WebStone 1.1 numbers are based on a different fileset, as
-well as an older version of the benchmarking software. The WebStone 1.1
-fileset was based on a fileset with a smaller average filesize, so that
-the number of connections per second will tend to be higher (all things
-being equal). The WebStone 2.0 fileset is based on observations of several
-real world sites, and the distribution of the filesizes found there. This
-fileset is also similar to the fileset chosen by the SPEC committee for
-their benchmark.</P>
-<P>While it is possible to convert the 1.1 fileset to a 2.0 format and then
-test it, the resulting numbers will not be the same, because the underlying
-software used to perform the testing has changed. WebStone 1.1 was also
-heavily abused because of the lack of run rules, and reporting rules. It
-is recommended that everyone move to WebStone 2.0.</P>
-<HR>
-<P></P>
-<H2><A NAME="what-is">What is WebStone?</A></H2>
-<P>WebStone is a highly-configurable client-server benchmark for HTTP servers. </P>
-<P>The original WebStone benchmark was released in March, 1995. The original
-white paper describing this benchmark is available from <A HREF="http://www.sgi.com/Products/WebFORCE/WebStone">http://www.sgi.com/Products/WebFORCE/WebStone/.</A> </P>
-<P>WebStone is not a proprietary benchmark - it is an open benchmark. The source
-code is freely available, and anyone can examine it. By design, WebStone
-does not unfairly favor SGI, Netscape, or any other company - it is simply
-a performance measurement tool. </P>
-<HR>
-<H2><A NAME="webperf">What about Webperf?</A></H2>
-<P>A SPEC SFS working group is presently adapting SPEC SFS to Web server benchmarking.
-SGI's WebStone team is part of this working group, and we support fully
-the effort. WebStone is available to fulfill the immediate Web benchmarking
-needs - not to confuse the public.</P>
-<P>Basically, if you like WebStone, use it. When SPEC releases Webperf, check
-it out.</P>
-<HR>
-<H2><A NAME="what-does">What does WebStone do?</A></H2>
-<P>WebStone makes a user-configurable number of HTTP 1.0 GET requests for specific
-pages on a Web server. Any Web server can be tested, and any HTML content
-can be used. </P>
-<P>WebStone measures the throughput and latency of each HTTP transfer. By default,
-only statistical data are returned, but the user may optionally request
-data for each and every transaction. WebStone also reports transaction failures,
-which translate into those little &quot;Connection Refused&quot; alerts in the real
-world.</P>
-<HR>
-<H2><A NAME="_wmh2_815967937">Feature Enhancements in WebStone 2.0</A></H2>
-<P>WebStone 2.0 includes support for testing proxy servers, as well as more
-flexible handling of URL's that enable WebStone to test a wide variety of
-content types. The code has also been significantly rewritten so that it
-is more robust and portable.</P>
-<HR>
-<H2><A NAME="does-not">What doesn't WebStone do?</A></H2>
-<P>WebStone does not yet do any of the following (listed roughly in order of
-planned implementation): </P>
-<UL>
-<LI>POST transactions, widely used for CGI-bin scripts
-</UL>
-<P>If you have additional requests for WebStone functionality, contact the <A HREF="#majordomo">WebStone mailing list</A>. </P>
-<HR>
-<H2><A NAME="obtaining">Where can I get WebStone?</A></H2>
-<P>The latest copy of WebStone, and of this FAQ, is available at <A HREF="http://www.sgi.com/Products/WebFORCE/WebStone">http://www.sgi.com/Products/WebFORCE/WebStone</A> </P>
-<HR>
-<H2><A NAME="running">How do I run WebStone?</A></H2>
-<P>WebStone includes a README file which may answer some of your questions.
-However, here's a brief overview. </P>
-<OL>
-<LI><A HREF="#test-bed">Set up your test-bed</A>
-<LI><A HREF="#loading-webstone">Load WebStone onto your webmaster </A>
-<LI><A HREF="#edit-runbench">Edit <CODE>testbed</CODE></A>
-<LI><A HREF="#file-list">Write a file list</A>
-<LI><A HREF="#start-benchmark">Start the benchmark</A>
-<LI><A HREF="#collect-results">Collect the results</A>
-</OL>
-<H3>WebStone now has an experimental GUI!</H3>
-<P>To try the GUI, make sure you have a Web browser, and run <CODE>./webstone -gui</CODE> from the WebStone base directory. You don't need to hand-edit the <CODE>testbed</CODE> file anymore, but you still need to edit <CODE>filelist</CODE> if you want to change the workload. This may not be necessary, since we've
-distributed two real-world workload models with WebStone. </P>
-<P>These are the stepts to follow to run the GUI </P>
-<OL>
-<LI><A HREF="#test-bed">Set up your test-bed</A>
-<LI><A HREF="#loading-webstone">Load WebStone onto your webmaster </A>
-<LI><CODE>./configure</CODE>
-<LI><CODE>./webstone -gui</CODE>
-</OL>
-<P>If the GUI appears to hang, you can kill stray WebStone processes with <CODE>./webstone -kill</CODE> </P>
-<H3><A NAME="test-bed">Setting up your test bed</A></H3>
-<P>Your test bed should include, at minimum, two machines and a network. The
-first machine is your Web server - it can be any HTTP 1.0-compliant server.
-As far as WebStone is concerned, it's a black box. </P>
-<P>You'll also need a webmaster and one or more webclients. These should be
-Unix hosts, since WebStone hasn't been tested on any non-Unix operating
-systems (feel free to port it, if you like). The webmaster and the webclient
-may be the same machine, if desired: we've run up to 120 webclients and
-the webmaster on a single 32MB Indy. </P>
-<P>You must establish a trust relationship between your webmaster and webclients.
-Each webclient must be set up so that the webmaster can use <CODE>rexec</CODE> to execute the WebStone on the client. This can be done with a guest account.
-It's also helpful if root can <CODE>rexec</CODE> and <CODE>rcp</CODE> to the webclients, and even to the web server. This requires editing the <CODE>/.rhosts</CODE> and <CODE>/etc/host.equiv</CODE> files. Here's an example: </P>
-<P><CODE>/.rhosts</CODE> (on each webclient) </P>
-<PRE>
-webmaster root
-</PRE>
-<P><CODE>/etc/hosts/equiv</CODE> (on each webclient) </P>
-<PRE>
-webmaster
-</PRE>
-<P>To make best use of WebStone, your webmaster should be equipped with a C
-compiler, Perl, awk, and a Web browser. A data analysis program such as
-GnuPlot may also come in handy. </P>
-<P>Connect the webclients, the webmaster, and the web server to a common network.
-To check your setup, load a browser on one of the webclients, and make sure
-it can connect to the Web server. </P>
-<H3><A NAME="loading-webstone">Loading WebStone</A></H3>
-<P>Copy the WebStone distribution onto your webmaster. If your webmaster isn't
-an SGI IRIX 5.3 machine, you'll have to make the binaries. Type <KBD>make</KBD> from the WebStone directory - this creates the following binaries: </P>
-<PRE>
-webmaster
-webclient
-</PRE>
-<P>Common porting errors </P>
-<UL>
-<LI>If you want to use gcc instead of cc, change the CC variable in <CODE>src/Makefile</CODE>.
-<LI>Many System V-based Unix implementations (such as Solaris 2.x) will need<CODE> LIBS = -lsocket -lnsl</CODE> in <CODE>src/Makefile</CODE>.
-<LI>Some users may also need to comment out the definition of <CODE>rexec</CODE> in <CODE>webmaster.c</CODE>
-</UL>
-<P>If you encounter other errors, please contact the <A HREF="#majordomo">WebStone mailing list</A>. </P>
-<P>Type <CODE>make install</CODE> to put the binaries in the <CODE>bin</CODE> directory. </P>
-<P>When you run WebStone, the <CODE>distribute</CODE> script automatically copies the <CODE>webclient</CODE> binary to the other client systems. If you're running diverse clients (e.g.,
-a couple Suns, a couple BSD hosts), you'll want to comment the <CODE>distribute</CODE> script out of <CODE>bin/runbench</CODE>, and distribute host-specific versions of <CODE>webclient</CODE> by hand. </P>
-<H3><A NAME="edit-runbench">Edit <CODE></A>testbed</CODE></H3>
-<P>If you use the <CODE>webstone</CODE> script to automate WebStone, you'll want to edit the <CODE>conf/testbed</CODE> script. The <CODE>testbed</CODE> script contains several configurable parameters that WebStone relies on.
-Here is an example: </P>
-<PRE>
-### BENCHMARK PARAMETERS -- EDIT THESE AS REQUIRED
-ITERATIONS=&quot;3&quot;
-MINCLIENTS=&quot;8&quot;
-MAXCLIENTS=&quot;128&quot;
-CLIENTINCR=&quot;8&quot;
-TIMEPERRUN=&quot;30&quot;
-
-### SERVER PARAMETERS -- EDIT AS REQUIRED
-#PROXY=
-SERVER=&quot;www&quot;
-PORTNO=80
-SERVERINFO=hinv
-OSTUNINGFILES=&quot;/var/sysgen/master.d/bsd&quot;
-WEBSERVERDIR=&quot;/usr/ns-home&quot;
-WEBDOCDIR=&quot;$WEBSERVERDIR/docs&quot;
-WEBSERVERTUNINGFILES=&quot;$WEBSERVERDIR/httpd-80/config/magnus.conf $WEBSERVERDIR/httpd-80/config/obj.conf&quot;
-
-# WE NEED AN ACCOUNT WITH A FIXED PASSWORD, SO WE CAN REXEC
-# THE WEBSTONE CLIENTS
-CLIENTS=&quot;webstone1 webstone2 webstone3 webstone4 webstone5&quot;
-CLIENTACCOUNT=guest
-CLIENTPASSWORD=guest
-CLIENTINFO=hinv
-TMPDIR=/tmp
-</PRE>
-<P>Briefly, the first set of parameters means that the WebStone benchmark will
-run from 8 clients to 128 clients, in increments of 8. Each increment will
-run for 30 minutes, and the whole test will be repeated three times. This
-test suite would take roughly 24 hours to complete. </P>
-<P>Why multiple iterations? The WebStone benchmark is a stochastic process
-so there will be variation from run to run, especially if your test file
-sets have large files or if you approach overloading the server. 3 iterations
-is about the minimum you should run just to see if there is variation and
-to gauge the amount of variation. the <TT>TIMEPERRUN</TT> needs to be long enough to establish a steady state and allow it to dominate
-the run. 30 minutes seems to be enough if the sizes of the files are small.
-You may want to run the benchmark longer per run to minimize variation if
-the files are large. </P>
-<P>The second set of parameters means that we will test a server called &quot;www&quot;
-at port 80 (note that the port number may be changed to accomodate proxy
-servers or multiple servers on the same host). We will use four clients.
-Also, we specify the location of a system tuning file (on Sun Solaris, one
-could use /etc/system), and web server tuning files (specified for Netscape).
-These files will be copied into the <CODE>runs</CODE> subdirectories for later reference. </P>
-<P>Finally, we specify the WebStone account on the clients. Here, we use the
-guest account, with a fixed password: guest. </P>
-<H3><A NAME="file-list">Write a file list</A></H3>
-<P>The basic WebStone tests expect a set of files to reside on the server to
-be retrieved by the <TT>webstone</TT> client programs. The file list tells WebStone which files to retrieve. </P>
-<P>It's possible to use an arbitrary set of fixed-length files for WebStone.
-Although these files have the <TT>.html</TT> extension, they are used to represent files of many types. Basically we
-treat &quot;bits-as-bits&quot;. You can use the programs in the <TT>genfileset</TT> subdirectory to create the needed set of files, and copy them onto your
-server: </P>
-<PRE>
- ./webstone -genfiles
-</PRE>
-<P>The sample file list shipped with WebStone uses the files created by genfiles: </P>
-<P># Sample filelist, abstracted from access logs<BR>
-/file500.html 350 #500<BR>
-/file5k.html 500 #5125<BR>
-/file50k.html 140 #51250<BR>
-/file500k.html 9 #512500<BR>
-/file5m.html 1 #5248000<BR>
-</P>
-<P>This filelist consists of 5 different files. The number following the filename
-is the weight of this file in the distribution. All the weights are summed
-together and the frequency of each file is the weight of that file over
-the total weights.</P>
-<P>For example, in this fileset the weights add up to 1000. So the the file500k.html
-page will occur 350 out of 1000 times, and the file5m.html will occur once
-every 1000 pages. </P>
-<P>Note that the URI should be changed to a full URI when testing proxy servers,
-for example, if the proxy server is called proxy, but the actual server
-which stores the file is called seltzer1, you could use the following filelist:</P>
-<P> #Sample filelist, abstracted from access logs<BR>
-http://seltzer1.sgi.com/file500.html 350 #500<BR>
-http://seltzer1.sgi.com/file5k.html 500 #5125<BR>
-http://seltzer1.sgi.com/file50k.html 140 #51250<BR>
-http://seltzer1.sgi.com/file500k.html 9 #512500<BR>
-http://seltzer1.sgi.com/file5m.html 1 #5248000</P>
-<P>This URI is the one which is passed to the proxy server, which in turn uses
-it to fetch the file from seltzer1.sgi.com. Notice that the particular files
-and the distribution are identical to the previous filelist. The other change
-which would need to be made for testing proxy servers is to have an entry
-&quot;PROXY=proxy&quot; in the testbed file and to specify the port where the proxy
-server listens for requests.</P>
-<P>Wherever possible, use the same pages for WebStone that you will use in
-the real world. This means that you'll have a harder time comparing your
-results with published results, but your results will more accurately reflect <STRONG>your</STRONG> situation. </P>
-<H3><A NAME="start-benchmark">Start the benchmark</A></H3>
-<P>type <CODE>./webstone</CODE> </P>
-<P>The results of each run will be saved in a directory called <TT>runs</TT>. Note that the runbench script attempts to collect configuration information
-about your client and server configurations such as netstat results. You
-may see some error messages if your clients don't have netstat or other
-utilities. </P>
-<H3><A NAME="collect-results">Collect the results</A></H3>
-<P>The WebStone summary statistics generated by <TT>webmaster</TT> are saved by <TT>runbench</TT> in a date stamped subdirectory of the <TT>runs</TT> directory in the current directory similar to: </P>
-<PRE>
- runs/950804_2304/run
-</PRE>
-<P>The script wscollect is provided as a tool for collected the results of
-all of the runs and generating a tab delimited file with all of the results.
-This file can be read into a spreadsheet or read by other analysis programs. </P>
-<PRE>
- wscollect runs &gt; runs.tabs
-</PRE>
-<P>An additional script called <TT>tabs2html</TT> will take a tab delimited file and produce an HTML 3.0 style table of the
-results: </P>
-<PRE>
- tabs2html runs.tabs &gt; runs.html
-</PRE>
-<HR>
-<H2><A NAME="common-problems">Common problems when running WebStone</A></H2>
-<H3><A NAME="swap-space">Out of swap space</A></H3>
-<P>It's fairly common for the Web server under test to run out of swap space.
-As a rule of thumb, make sure that you have swap space equal to the number
-of server processes times the size of the largest test file. </P>
-<P>For instance, if you're testing a 10MB file on a Netscape server with 64
-processes, you'll need to have at least 640MB of swap space. <CITE>N.B.</CITE>: On SGI IRIX 5.x, you can substitute large amounts of <EM>virtual swap space</EM>, since Netscape doesn't actually use all the space it asks for. </P>
-<P>See your operating system-specific administration guide for details on adding
-and configuring swap space. </P>
-<H3><A NAME="timing-info">Error reading timing info</A></H3>
-<P><STRONG>Question</STRONG>: </P>
-<P>Running: </P>
-<PRE>
-webmaster -w webmaster -p 9990 -u flist -f config
-</PRE>
-<P>on jan.near.net </P>
-<P>outputs: </P>
-<PRE>
-Waiting for READY from 6 clients
-All READYs received
-Sending GO to all clients
-All clients started at Tue Aug 8 11:57:30 1995
-Waiting for clients completion
-Reading results
-.Error second reading timing info from one of the clients:
-Interrupted system call
-web child 1 did not respond. 3456 bytes read
-.Error second reading timing info from one of the clients:
-Interrupted system call
-web child 0 did not respond. 3456 bytes read
-</PRE>
-<P>What does the second reading timing info contain? What might cause the second
-read to fail while the first passes? </P>
-<P><STRONG>Answer</STRONG>: </P>
-<P>It's most likely that one of the WebStone clients died before it could report
-results to the webmaster. We've squashed many circumstances in which this
-happens, but bugs continue to appear, especially on systems we haven't tested. </P>
-<P>We can't do much for this kind of problem without debugging traces. Edit <CODE>testbed</CODE>, and set the <CODE>DEBUG</CODE> parameter to <CODE>DEBUG=-d</CODE>, so that debugging info will be written to files named /tmp/webstone-debug.&lt;PID&gt;. </P>
-<P>If you can replicate this problem with debugging turned on, please let us
-know. We'd love to examine the traces. </P>
-<P>Another possible source of problems with reading timing info is when a page
-in the filelist did not get read by a client, but the webmaster was expecting
-to find it. This can happen when the test time, number of clients and filelist
-distribution are set up so that a file which gets read infrequently does
-not get read _yet_ before the test period ends.This will get ironed out
-in a later release of WebStone.</P>
-<HR>
-<H2><A NAME="interpreting">What do the results mean?</A></H2>
-<P>WebStone primarily measures throughput (bytes/second) and latency (time
-to complete a request). WebStone also reports pages/minute, connection rate
-averages, and other numbers. Some of these may help you to sanity-check
-the throughput measurements. </P>
-<P>Two types of throughput are measured: aggregate and per-client. Both are
-averaged over the entire test time and the entire client base. Aggregate
-throughput is simply total bytes (body + header) transferred throughout
-the test, divided by the total test time. Per-client throughput divides
-aggregate throughput by the number of clients. </P>
-<P>Two types of latency are reported: connection latency and request latency.
-For each metric, the mean time is provided, as well as the standard deviation
-of all data, plus the minimum and maximum times. Connection latency reflects
-the time taken to establish a connection, while request latency reflects
-the time to complete the data transfer once the connection has been established. </P>
-<P>User-perceived latency will include the sum of connection and request latencies,
-plus any network latency due to WAN connections, routers, modems, etc. </P>
-<P>WebStone also reports a metric called <EM>Little's Ls</EM>. <EM>Ls</EM> is derived from Little's Law, and reflects how much time is spent by the
-server on request processing, rather than overhead and errors. Ls. is also an indirect indicator of the average number of connections which
-the web server has open at any particular instant. This number should stay
-very close to the number of clients, or else some clients are being denied
-access to the server at any given time.</P>
-<P>If you load your Web servers high enough, you'll begin to see errors in
-the results. That's fine (at least as far as WebStone is concerned). It
-just means that your server is heavily loaded, and some clients aren't being
-serviced before they time out. In fact, the number of errors at a given
-load can be an excellent indicator of how your server will perform under
-extremely heavy loads. </P>
-<HR>
-<H2><A NAME="majordomo">I'm still having problems. Where can I get help?</A></H2>
-<P>Subscribe to the WebStone mailing list! Send a message to <A HREF="mailto:majordomo@engr.sgi.com">majordomo@engr.sgi.com</A> - the subject doesn't matter, but the content should be: </P>
-<PRE>
-subscribe webstone
-</PRE>
-<P>You should receive a message shortly, confirming that you've been added
-to the mailing list. You can send to the whole list at <A HREF="mailto:webstone@engr.sgi.com">webstone@engr.sgi.com</A> - the authors of WebStone read the list, and they'll do their best to help.
-Other list members may also be able to help. </P>
-<P>If you have access to USENET News, you can also read and post to <A HREF="news:comp.benchmarks">comp.benchmarks</A>. As with any newsgroup, read the FAQ before posting! </P>
-<P>There's also a mailing list devoted to the performance limits of the HTTP
-protocol. You can subscribe by sending e-mail to <A HREF="mailto:www-speed-request@tipper.oit.unc.edu">www-speed-request@tipper.oit.unc.edu</A> with the text </P>
-<PRE>
-subscribe &lt;your-email-address&gt;
-</PRE>
-<HR>
-<H2><A NAME="legal">Legal Stuff</A></H2>
-<P>This file and all files contained in the WebStone distribution are copyright
-&#169; 1995, 1996 Silicon Graphics, Inc. </P>
-<P>This software is provided without support and without any obligation on
-the part of Silicon Graphics, Inc. to assist in its use, correction, modification
-or enhancement. There is no guarantee that this software will be included
-in future software releases, and it probably will not be included. </P>
-<P>THIS SOFTWARE IS PROVIDED &quot;AS IS&quot; WITH NO WARRANTIES OF ANY KIND INCLUDING
-THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE,
-OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. </P>
-<P>In no event will Silicon Graphics, Inc. be liable for any lost revenue or
-profits or other special, indirect and consequential damages, even if Silicon
-Graphics, Inc. has been advised of the possibility of such damages. </P>
-</BODY>
-</HTML>
diff --git a/apps/JAWS/clients/WebSTONE/doc/LICENSE.html b/apps/JAWS/clients/WebSTONE/doc/LICENSE.html
deleted file mode 100644
index 05d2b5a0378..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/LICENSE.html
+++ /dev/null
@@ -1,16 +0,0 @@
-This file and all files contained in this directory are
-copyright 1995, Silicon Graphics, Inc.
-
-This software is provided without support and without any obligation on the
-part of Silicon Graphics, Inc. to assist in its use, correction, modification
-or enhancement. There is no guarantee that this software will be included in
-future software releases, and it probably will not be included.
-
-THIS SOFTWARE IS PROVIDED "AS IS" WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE,
-OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-
-In no event will Silicon Graphics, Inc. be liable for any lost revenue or
-profits or other special, indirect and consequential damages, even if
-Silicon Graphics, Inc. has been advised of the possibility of such damages.
-
diff --git a/apps/JAWS/clients/WebSTONE/doc/WebStone.html b/apps/JAWS/clients/WebSTONE/doc/WebStone.html
deleted file mode 100644
index e16afbae696..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/WebStone.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<HTML VERSION="2.0">
-<HEAD>
-<!-- WEBMAGIC VERSION NUMBER="2.0" -->
-<!-- WEBMAGIC TRANSLATION NAME="ServerRoot" SRC="/var/www/htdocs/" DST="/" -->
-<!-- WEBMAGIC TRANSLATION NAME="ProjectRoot" SRC="./" DST="" -->
-<TITLE>WebStone</TITLE>
-</HEAD>
-<BODY>
-<P><A HREF="WebStone.html"><IMG SRC="webstone.gif" WIDTH="534" HEIGHT="174" BORDER="0" SGI_SETWIDTH SGI_SETHEIGHT SGI_FULLPATH="/usr/people/mblakele/WebStone-working/doc/webstone.gif"></A>
-<H1>World Wide Web Server Benchmarking</H1>
-<P>If you have any questions, please read the <EM><A HREF="FAQ-webstone.html">WebStone FAQ</EM></A>.
-<HR>
-<H2><A HREF="../bin/WebStone-setup.pl">Set up WebStone</A></H2>
-<HR>
-<H2><A HREF="../bin/WebStone-run.pl">Run WebStone</A></H2>
-<HR>
-<H2><A HREF="../bin/view-results.pl">View WebStone Results</A></H2>
-<HR>
-<H2><A HREF="../bin/WebStone-manage.pl">Administer WebStone</A></H2>
-<HR>
-<ADDRESS><A HREF="LICENSE.html">copyright 1995 Silicon Graphics</A></ADDRESS>
-</BODY>
-</HTML>
diff --git a/apps/JAWS/clients/WebSTONE/doc/testbed.help b/apps/JAWS/clients/WebSTONE/doc/testbed.help
deleted file mode 100755
index 4b25a16e1fe..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/testbed.help
+++ /dev/null
@@ -1,21 +0,0 @@
-ITERATIONS: Total Number of times to run test suite.
-MINCLIENTS: Start the test suite by running this number of clients.
-MAXCLIENTS: End the test suite when this number of clients have run.
-CLIENTINCR: Increment the number of clients by this number after each run.
-TIMEPERRUN: Minutes to run each test.
-PORTNO: TCP/IP port to test on the Web server.
-SERVER: Name or IP number of Web server to be tested.
-PROXYSERVER: Name or IP number of a proxy server through which to test.
-CLIENTS: Name(s) or IP address(es) of machine(s) to use as WebStone clients.
-OSTUNINGFILES: Full pathname(s) of OS tuning files to copy into the bin/runs directory.
-WEBSERVERDIR: Base directory name for Web server.
-WEBDOCDIR: Base directory name for Web server document root.
-WEBSERVERTUNINGFILES: Full pathname(s) of Web server tuning files to copy into bin/runs.
-CLIENTINFO: Name of an informational binary to run on each client.
-SERVERINFO: Name of an informational binary to run on each server.
-TMPDIR: Full pathname of a directory where temporary files may be stored.
-CLIENTACCOUNT: Run WebStone on CLIENTS as this username, via rsh.
-CLIENTPASSWORD: Password for CLIENTACCOUNT. This cannot be blank.
-DEBUG: Leave blank, or set to -d to activate debugging mode. Debug files are written to TMPDIR.
-RCP: Command to use for remote copying. Default: rcp.
-RSH: Command to use for remote execution of a command. Default: rsh.
diff --git a/apps/JAWS/clients/WebSTONE/doc/webstone-white-paper.ps b/apps/JAWS/clients/WebSTONE/doc/webstone-white-paper.ps
deleted file mode 100644
index 1ed0a6523f5..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/webstone-white-paper.ps
+++ /dev/null
@@ -1,8974 +0,0 @@
-%!PS-Adobe-3.0
-
-%%Creator: Windows PSCRIPT
-
-%%Title: Microsoft Word - WEBSTON7.DOC
-
-%%BoundingBox: 18 9 593 784
-
-%%DocumentNeededResources: (atend)
-
-%%DocumentSuppliedResources: (atend)
-
-%%Pages: (atend)
-
-%%BeginResource: procset Win35Dict 3 1
-
-/Win35Dict 290 dict def Win35Dict begin/bd{bind def}bind def/in{72
-
-mul}bd/ed{exch def}bd/ld{load def}bd/tr/translate ld/gs/gsave ld/gr
-
-/grestore ld/M/moveto ld/L/lineto ld/rmt/rmoveto ld/rlt/rlineto ld
-
-/rct/rcurveto ld/st/stroke ld/n/newpath ld/sm/setmatrix ld/cm/currentmatrix
-
-ld/cp/closepath ld/ARC/arcn ld/TR{65536 div}bd/lj/setlinejoin ld/lc
-
-/setlinecap ld/ml/setmiterlimit ld/sl/setlinewidth ld/scignore false
-
-def/sc{scignore{pop pop pop}{0 index 2 index eq 2 index 4 index eq
-
-and{pop pop 255 div setgray}{3{255 div 3 1 roll}repeat setrgbcolor}ifelse}ifelse}bd
-
-/FC{bR bG bB sc}bd/fC{/bB ed/bG ed/bR ed}bd/HC{hR hG hB sc}bd/hC{
-
-/hB ed/hG ed/hR ed}bd/PC{pR pG pB sc}bd/pC{/pB ed/pG ed/pR ed}bd/sM
-
-matrix def/PenW 1 def/iPen 5 def/mxF matrix def/mxE matrix def/mxUE
-
-matrix def/mxUF matrix def/fBE false def/iDevRes 72 0 matrix defaultmatrix
-
-dtransform dup mul exch dup mul add sqrt def/fPP false def/SS{fPP{
-
-/SV save def}{gs}ifelse}bd/RS{fPP{SV restore}{gr}ifelse}bd/EJ{gsave
-
-showpage grestore}bd/#C{userdict begin/#copies ed end}bd/FEbuf 2 string
-
-def/FEglyph(G )def/FE{1 exch{dup 16 FEbuf cvrs FEglyph exch 1 exch
-
-putinterval 1 index exch FEglyph cvn put}for}bd/SM{/iRes ed/cyP ed
-
-/cxPg ed/cyM ed/cxM ed 72 100 div dup scale dup 0 ne{90 eq{cyM exch
-
-0 eq{cxM exch tr -90 rotate -1 1 scale}{cxM cxPg add exch tr +90 rotate}ifelse}{cyP
-
-cyM sub exch 0 ne{cxM exch tr -90 rotate}{cxM cxPg add exch tr -90
-
-rotate 1 -1 scale}ifelse}ifelse}{pop cyP cyM sub exch 0 ne{cxM cxPg
-
-add exch tr 180 rotate}{cxM exch tr 1 -1 scale}ifelse}ifelse 100 iRes
-
-div dup scale 0 0 transform .25 add round .25 sub exch .25 add round
-
-.25 sub exch itransform translate}bd/SJ{1 index 0 eq{pop pop/fBE false
-
-def}{1 index/Break ed div/dxBreak ed/fBE true def}ifelse}bd/ANSIVec[
-
-16#0/grave 16#1/acute 16#2/circumflex 16#3/tilde 16#4/macron 16#5/breve
-
-16#6/dotaccent 16#7/dieresis 16#8/ring 16#9/cedilla 16#A/hungarumlaut
-
-16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle 16#60/grave
-
-16#7C/bar 16#82/quotesinglbase 16#83/florin 16#84/quotedblbase 16#85
-
-/ellipsis 16#86/dagger 16#87/daggerdbl 16#88/circumflex 16#89/perthousand
-
-16#8A/Scaron 16#8B/guilsinglleft 16#8C/OE 16#91/quoteleft 16#92/quoteright
-
-16#93/quotedblleft 16#94/quotedblright 16#95/bullet 16#96/endash 16#97
-
-/emdash 16#98/tilde 16#99/trademark 16#9A/scaron 16#9B/guilsinglright
-
-16#9C/oe 16#9F/Ydieresis 16#A0/space 16#A1/exclamdown 16#A4/currency
-
-16#A5/yen 16#A6/brokenbar 16#A7/section 16#A8/dieresis 16#A9/copyright
-
-16#AA/ordfeminine 16#AB/guillemotleft 16#AC/logicalnot 16#AD/hyphen
-
-16#AE/registered 16#AF/macron 16#B0/degree 16#B1/plusminus 16#B2/twosuperior
-
-16#B3/threesuperior 16#B4/acute 16#B5/mu 16#B6/paragraph 16#B7/periodcentered
-
-16#B8/cedilla 16#B9/onesuperior 16#BA/ordmasculine 16#BB/guillemotright
-
-16#BC/onequarter 16#BD/onehalf 16#BE/threequarters 16#BF/questiondown
-
-16#C0/Agrave 16#C1/Aacute 16#C2/Acircumflex 16#C3/Atilde 16#C4/Adieresis
-
-16#C5/Aring 16#C6/AE 16#C7/Ccedilla 16#C8/Egrave 16#C9/Eacute 16#CA
-
-/Ecircumflex 16#CB/Edieresis 16#CC/Igrave 16#CD/Iacute 16#CE/Icircumflex
-
-16#CF/Idieresis 16#D0/Eth 16#D1/Ntilde 16#D2/Ograve 16#D3/Oacute 16#D4
-
-/Ocircumflex 16#D5/Otilde 16#D6/Odieresis 16#D7/multiply 16#D8/Oslash
-
-16#D9/Ugrave 16#DA/Uacute 16#DB/Ucircumflex 16#DC/Udieresis 16#DD/Yacute
-
-16#DE/Thorn 16#DF/germandbls 16#E0/agrave 16#E1/aacute 16#E2/acircumflex
-
-16#E3/atilde 16#E4/adieresis 16#E5/aring 16#E6/ae 16#E7/ccedilla 16#E8
-
-/egrave 16#E9/eacute 16#EA/ecircumflex 16#EB/edieresis 16#EC/igrave
-
-16#ED/iacute 16#EE/icircumflex 16#EF/idieresis 16#F0/eth 16#F1/ntilde
-
-16#F2/ograve 16#F3/oacute 16#F4/ocircumflex 16#F5/otilde 16#F6/odieresis
-
-16#F7/divide 16#F8/oslash 16#F9/ugrave 16#FA/uacute 16#FB/ucircumflex
-
-16#FC/udieresis 16#FD/yacute 16#FE/thorn 16#FF/ydieresis ] def/reencdict
-
-12 dict def/IsChar{basefontdict/CharStrings get exch known}bd/MapCh{dup
-
-IsChar not{pop/bullet}if newfont/Encoding get 3 1 roll put}bd/MapDegree{16#b0
-
-/degree IsChar{/degree}{/ring}ifelse MapCh}bd/MapBB{16#a6/brokenbar
-
-IsChar{/brokenbar}{/bar}ifelse MapCh}bd/ANSIFont{reencdict begin/newfontname
-
-ed/basefontname ed FontDirectory newfontname known not{/basefontdict
-
-basefontname findfont def/newfont basefontdict maxlength dict def basefontdict{exch
-
-dup/FID ne{dup/Encoding eq{exch dup length array copy newfont 3 1 roll
-
-put}{exch newfont 3 1 roll put}ifelse}{pop pop}ifelse}forall newfont
-
-/FontName newfontname put 127 1 159{newfont/Encoding get exch/bullet
-
-put}for ANSIVec aload pop ANSIVec length 2 idiv{MapCh}repeat MapDegree
-
-MapBB newfontname newfont definefont pop}if newfontname end}bd/SB{FC
-
-/ULlen ed/str ed str length fBE not{dup 1 gt{1 sub}if}if/cbStr ed
-
-/dxGdi ed/y0 ed/x0 ed str stringwidth dup 0 ne{/y1 ed/x1 ed y1 y1
-
-mul x1 x1 mul add sqrt dxGdi exch div 1 sub dup x1 mul cbStr div exch
-
-y1 mul cbStr div}{exch abs neg dxGdi add cbStr div exch}ifelse/dyExtra
-
-ed/dxExtra ed x0 y0 M fBE{dxBreak 0 BCh dxExtra dyExtra str awidthshow}{dxExtra
-
-dyExtra str ashow}ifelse fUL{x0 y0 M dxUL dyUL rmt ULlen fBE{Break
-
-add}if 0 mxUE transform gs rlt cyUL sl [] 0 setdash st gr}if fSO{x0
-
-y0 M dxSO dySO rmt ULlen fBE{Break add}if 0 mxUE transform gs rlt cyUL
-
-sl [] 0 setdash st gr}if n/fBE false def}bd/font{/name ed/Ascent ed
-
-0 ne/fT3 ed 0 ne/fSO ed 0 ne/fUL ed/Sy ed/Sx ed 10.0 div/ori ed -10.0
-
-div/esc ed/BCh ed name findfont/xAscent 0 def/yAscent Ascent def/ULesc
-
-esc def ULesc mxUE rotate pop fT3{/esc 0 def xAscent yAscent mxUE transform
-
-/yAscent ed/xAscent ed}if [Sx 0 0 Sy neg xAscent yAscent] esc mxE
-
-rotate mxF concatmatrix makefont setfont [Sx 0 0 Sy neg 0 Ascent] mxUE
-
-mxUF concatmatrix pop fUL{currentfont dup/FontInfo get/UnderlinePosition
-
-known not{pop/Courier findfont}if/FontInfo get/UnderlinePosition get
-
-1000 div 0 exch mxUF transform/dyUL ed/dxUL ed}if fSO{0 .3 mxUF transform
-
-/dySO ed/dxSO ed}if fUL fSO or{currentfont dup/FontInfo get/UnderlineThickness
-
-known not{pop/Courier findfont}if/FontInfo get/UnderlineThickness get
-
-1000 div Sy mul/cyUL ed}if}bd/min{2 copy gt{exch}if pop}bd/max{2 copy
-
-lt{exch}if pop}bd/CP{/ft ed{{ft 0 eq{clip}{eoclip}ifelse}stopped{currentflat
-
-1 add setflat}{exit}ifelse}loop}bd/patfont 10 dict def patfont begin
-
-/FontType 3 def/FontMatrix [1 0 0 -1 0 0] def/FontBBox [0 0 16 16]
-
-def/Encoding StandardEncoding def/BuildChar{pop pop 16 0 0 0 16 16
-
-setcachedevice 16 16 false [1 0 0 1 .25 .25]{pat}imagemask}bd end/p{
-
-/pat 32 string def{}forall 0 1 7{dup 2 mul pat exch 3 index put dup
-
-2 mul 1 add pat exch 3 index put dup 2 mul 16 add pat exch 3 index
-
-put 2 mul 17 add pat exch 2 index put pop}for}bd/pfill{/PatFont patfont
-
-definefont setfont/ch(AAAA)def X0 64 X1{Y1 -16 Y0{1 index exch M ch
-
-show}for pop}for}bd/vert{X0 w X1{dup Y0 M Y1 L st}for}bd/horz{Y0 w
-
-Y1{dup X0 exch M X1 exch L st}for}bd/fdiag{X0 w X1{Y0 M X1 X0 sub dup
-
-rlt st}for Y0 w Y1{X0 exch M Y1 Y0 sub dup rlt st}for}bd/bdiag{X0 w
-
-X1{Y1 M X1 X0 sub dup neg rlt st}for Y0 w Y1{X0 exch M Y1 Y0 sub dup
-
-neg rlt st}for}bd/AU{1 add cvi 15 or}bd/AD{1 sub cvi -16 and}bd/SHR{pathbbox
-
-AU/Y1 ed AU/X1 ed AD/Y0 ed AD/X0 ed}bd/hfill{/w iRes 37.5 div round
-
-def 0.1 sl [] 0 setdash n dup 0 eq{horz}if dup 1 eq{vert}if dup 2 eq{fdiag}if
-
-dup 3 eq{bdiag}if dup 4 eq{horz vert}if 5 eq{fdiag bdiag}if}bd/F{/ft
-
-ed fm 256 and 0 ne{gs FC ft 0 eq{fill}{eofill}ifelse gr}if fm 1536
-
-and 0 ne{SHR gs HC ft CP fm 1024 and 0 ne{/Tmp save def pfill Tmp restore}{fm
-
-15 and hfill}ifelse gr}if}bd/S{PenW sl PC st}bd/m matrix def/GW{iRes
-
-12 div PenW add cvi}bd/DoW{iRes 50 div PenW add cvi}bd/DW{iRes 8 div
-
-PenW add cvi}bd/SP{/PenW ed/iPen ed iPen 0 eq iPen 6 eq or{[] 0 setdash}if
-
-iPen 1 eq{[DW GW] 0 setdash}if iPen 2 eq{[DoW GW] 0 setdash}if iPen
-
-3 eq{[DW GW DoW GW] 0 setdash}if iPen 4 eq{[DW GW DoW GW DoW GW] 0
-
-setdash}if}bd/E{m cm pop tr scale 1 0 moveto 0 0 1 0 360 arc cp m sm}bd
-
-/AG{/sy ed/sx ed sx div 4 1 roll sy div 4 1 roll sx div 4 1 roll sy
-
-div 4 1 roll atan/a2 ed atan/a1 ed sx sy scale a1 a2 ARC}def/A{m cm
-
-pop tr AG m sm}def/P{m cm pop tr 0 0 M AG cp m sm}def/RRect{n 4 copy
-
-M 3 1 roll exch L 4 2 roll L L cp}bd/RRCC{/r ed/y1 ed/x1 ed/y0 ed/x0
-
-ed x0 x1 add 2 div y0 M x1 y0 x1 y1 r arcto 4{pop}repeat x1 y1 x0 y1
-
-r arcto 4{pop}repeat x0 y1 x0 y0 r arcto 4{pop}repeat x0 y0 x1 y0 r
-
-arcto 4{pop}repeat cp}bd/RR{2 copy 0 eq exch 0 eq or{pop pop RRect}{2
-
-copy eq{pop RRCC}{m cm pop/y2 ed/x2 ed/ys y2 x2 div 1 max def/xs x2
-
-y2 div 1 max def/y1 exch ys div def/x1 exch xs div def/y0 exch ys div
-
-def/x0 exch xs div def/r2 x2 y2 min def xs ys scale x0 x1 add 2 div
-
-y0 M x1 y0 x1 y1 r2 arcto 4{pop}repeat x1 y1 x0 y1 r2 arcto 4{pop}repeat
-
-x0 y1 x0 y0 r2 arcto 4{pop}repeat x0 y0 x1 y0 r2 arcto 4{pop}repeat
-
-m sm cp}ifelse}ifelse}bd/PP{{rlt}repeat}bd/OB{gs 0 ne{7 3 roll/y ed
-
-/x ed x y translate ULesc rotate x neg y neg translate x y 7 -3 roll}if
-
-sc B fill gr}bd/B{M/dy ed/dx ed dx 0 rlt 0 dy rlt dx neg 0 rlt cp}bd
-
-/CB{B clip n}bd/ErrHandler{errordict dup maxlength exch length gt
-
-dup{errordict begin}if/errhelpdict 12 dict def errhelpdict begin/stackunderflow(operand stack underflow)def
-
-/undefined(this name is not defined in a dictionary)def/VMerror(you have used up all the printer's memory)def
-
-/typecheck(operator was expecting a different type of operand)def
-
-/ioerror(input/output error occured)def end{end}if errordict begin
-
-/handleerror{$error begin newerror{/newerror false def showpage 72
-
-72 scale/x .25 def/y 9.6 def/Helvetica findfont .2 scalefont setfont
-
-x y moveto(Offending Command = )show/command load{dup type/stringtype
-
-ne{(max err string)cvs}if show}exec/y y .2 sub def x y moveto(Error = )show
-
-errorname{dup type dup( max err string )cvs show( : )show/stringtype
-
-ne{( max err string )cvs}if show}exec errordict begin errhelpdict errorname
-
-known{x 1 add y .2 sub moveto errhelpdict errorname get show}if end
-
-/y y .4 sub def x y moveto(Stack =)show ostack{/y y .2 sub def x 1
-
-add y moveto dup type/stringtype ne{( max err string )cvs}if show}forall
-
-showpage}if end}def end}bd end
-
-%%EndResource
-
-/SVDoc save def
-
-%%EndProlog
-
-%%BeginSetup
-
-Win35Dict begin
-
-ErrHandler
-
-statusdict begin 0 setjobtimeout end
-
-statusdict begin statusdict /jobname (Microsoft Word - WEBSTON7.DOC) put end
-
-/oldDictCnt countdictstack def {}stopped
-
-{ countdictstack oldDictCnt lt { Win35Dict begin }
-
-{1 1 countdictstack oldDictCnt sub {pop end } for } ifelse } if
-
-/oldDictCnt countdictstack def {letter
-
-}stopped
-
-{ countdictstack oldDictCnt lt { Win35Dict begin }
-
-{1 1 countdictstack oldDictCnt sub {pop end } for } ifelse } if
-
-[
-{mark 1.0 1.0 .98 .9 .82 .68 .56 .48 .28 .1 .06 .0 counttomark dup 3 add -1 roll exch 2 sub mul dup floor cvi dup 3 1 roll sub exch dup 3 add index exch 2 add index dup 4 1 roll sub mul add counttomark 1 add 1 roll cleartomark } bind
-
-/exec load currenttransfer /exec load] cvx settransfer
-
-%%EndSetup
-
-%%Page: 1 1
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 83 83 0 0 0 75 /Times-Bold /font29 ANSIFont font
-
-0 0 0 fC
-
-278 772 1843 (WebSTONE: The First Generation in HTTP Server) 1843 SB
-
-938 869 524 (Benchmarking) 524 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-1087 1033 226 (Gene Trent) 226 SB
-
-1148 1092 103 (MTS) 103 SB
-
-1037 1151 326 (Silicon Graphics) 326 SB
-
-1091 1269 218 (Mark Sake) 218 SB
-
-1148 1328 103 (MTS) 103 SB
-
-1037 1387 326 (Silicon Graphics) 326 SB
-
-1055 1505 290 (February 1995) 290 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1041 1978 317 (ABSTRACT) 317 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-225 2097 110 (With ) 111 SB
-
-336 2097 74 (the ) 75 SB
-
-411 2097 145 (advent ) 146 SB
-
-557 2097 54 (of ) 55 SB
-
-612 2097 74 (the ) 76 SB
-
-688 2097 136 (Hyper ) 138 SB
-
-826 2097 105 (Text ) 107 SB
-
-933 2097 180 (Transfer ) 182 SB
-
-1115 2097 185 (Protocol ) 187 SB
-
-1302 2097 173 (\(HTTP\) ) 175 SB
-
-1477 2097 13 ( ) 15 SB
-
-1492 2097 40 (it ) 42 SB
-
-1534 2097 90 (was ) 92 SB
-
-1626 2097 84 (just ) 86 SB
-
-1712 2097 35 (a ) 37 SB
-
-1749 2097 141 (matter ) 143 SB
-
-1892 2097 54 (of ) 56 SB
-
-1948 2097 99 (time ) 101 SB
-
-2049 2097 126 (before) 126 SB
-
-225 2156 74 (the ) 81 SB
-
-306 2156 242 (commercial ) 249 SB
-
-555 2156 79 (use ) 86 SB
-
-641 2156 137 (would ) 144 SB
-
-785 2156 59 (be ) 66 SB
-
-851 2156 170 (evident. ) 177 SB
-
-1028 2156 13 ( ) 20 SB
-
-1048 2156 265 (Performance ) 272 SB
-
-1320 2156 145 (testing ) 152 SB
-
-1472 2156 54 (of ) 61 SB
-
-1533 2156 180 (different ) 187 SB
-
-1720 2156 198 (hardware ) 205 SB
-
-1925 2156 201 (platforms ) 209 SB
-
-2134 2156 41 (as) 41 SB
-
-225 2215 95 (well ) 96 SB
-
-321 2215 54 (as ) 55 SB
-
-376 2215 180 (different ) 182 SB
-
-558 2215 337 (implementations ) 339 SB
-
-897 2215 54 (of ) 56 SB
-
-953 2215 139 (HTTP ) 141 SB
-
-1094 2215 78 (has ) 80 SB
-
-1174 2215 119 (made ) 121 SB
-
-1295 2215 40 (it ) 42 SB
-
-1337 2215 203 (necessary ) 205 SB
-
-1542 2215 54 (to ) 56 SB
-
-1598 2215 133 (create ) 135 SB
-
-1733 2215 35 (a ) 37 SB
-
-1770 2215 95 (new ) 97 SB
-
-1867 2215 230 (benchmark ) 232 SB
-
-2099 2215 76 (that) 76 SB
-
-225 2274 85 (will ) 92 SB
-
-317 2274 121 (allow ) 128 SB
-
-445 2274 35 (a ) 43 SB
-
-488 2274 196 (customer ) 204 SB
-
-692 2274 123 (easily ) 131 SB
-
-823 2274 54 (to ) 62 SB
-
-885 2274 231 (understand ) 239 SB
-
-1124 2274 74 (the ) 82 SB
-
-1206 2274 262 (performance ) 270 SB
-
-1476 2274 271 (characterizes ) 279 SB
-
-1755 2274 54 (of ) 62 SB
-
-1817 2274 180 (different ) 188 SB
-
-2005 2274 170 (vendors.) 170 SB
-
-225 2333 90 (The ) 107 SB
-
-332 2333 280 (WebSTONE, ) 297 SB
-
-629 2333 35 (a ) 52 SB
-
-681 2333 95 (web ) 112 SB
-
-793 2333 156 (serving ) 173 SB
-
-966 2333 230 (benchmark ) 247 SB
-
-1213 2333 78 (has ) 95 SB
-
-1308 2333 105 (been ) 122 SB
-
-1430 2333 216 (developed ) 233 SB
-
-1663 2333 49 (in ) 66 SB
-
-1729 2333 59 (an ) 77 SB
-
-1806 2333 164 (attempt ) 182 SB
-
-1988 2333 54 (to ) 72 SB
-
-2060 2333 115 (better) 115 SB
-
-225 2392 231 (understand ) 237 SB
-
-462 2392 74 (the ) 81 SB
-
-543 2392 262 (performance ) 269 SB
-
-812 2392 249 (characterics ) 256 SB
-
-1068 2392 54 (of ) 61 SB
-
-1129 2392 102 (both ) 109 SB
-
-1238 2392 198 (hardware ) 205 SB
-
-1443 2392 84 (and ) 91 SB
-
-1534 2392 198 (software. ) 205 SB
-
-1739 2392 13 ( ) 20 SB
-
-1759 2392 90 (The ) 97 SB
-
-1856 2392 201 (following ) 208 SB
-
-2064 2392 111 (paper) 111 SB
-
-225 2451 195 (describes ) 203 SB
-
-428 2451 74 (the ) 82 SB
-
-510 2451 230 (benchmark ) 239 SB
-
-749 2451 49 (in ) 58 SB
-
-807 2451 188 (technical ) 197 SB
-
-1004 2451 121 (detail ) 130 SB
-
-1134 2451 84 (and ) 93 SB
-
-1227 2451 129 (issues ) 138 SB
-
-1365 2451 182 (involved ) 191 SB
-
-1556 2451 49 (in ) 58 SB
-
-1614 2451 230 (developing ) 239 SB
-
-1853 2451 83 (this ) 92 SB
-
-1945 2451 230 (benchmark.) 230 SB
-
-225 2510 99 (This ) 100 SB
-
-325 2510 230 (benchmark ) 231 SB
-
-556 2510 90 (was ) 91 SB
-
-647 2510 216 (developed ) 217 SB
-
-864 2510 169 (because ) 170 SB
-
-1034 2510 113 (there ) 114 SB
-
-1148 2510 44 (is ) 46 SB
-
-1194 2510 190 (currently ) 192 SB
-
-1386 2510 63 (no ) 65 SB
-
-1451 2510 117 (other ) 119 SB
-
-1570 2510 94 (way ) 96 SB
-
-1666 2510 54 (of ) 56 SB
-
-1722 2510 145 (testing ) 147 SB
-
-1869 2510 74 (the ) 76 SB
-
-1945 2510 230 (application.) 230 SB
-
-225 2569 1891 (This benchmark is intended for free distribution both this white paper and code. It is the intent ) 1892 SB
-
-2117 2569 58 (for) 58 SB
-
-225 2628 83 (this ) 89 SB
-
-314 2628 230 (benchmark ) 236 SB
-
-550 2628 54 (to ) 60 SB
-
-610 2628 117 (grow ) 123 SB
-
-733 2628 84 (and ) 90 SB
-
-823 2628 128 (better ) 134 SB
-
-957 2628 96 (help ) 102 SB
-
-1059 2628 84 (test ) 90 SB
-
-1149 2628 148 (system ) 154 SB
-
-1303 2628 262 (performance ) 268 SB
-
-1571 2628 71 (for ) 77 SB
-
-1648 2628 132 (future ) 138 SB
-
-1786 2628 167 (systems ) 173 SB
-
-1959 2628 84 (and ) 90 SB
-
-2049 2628 126 (HTTP) 126 SB
-
-225 2687 337 (implementations.) 337 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 2 2
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (2) 21 SB
-
-gr
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Page: 3 3
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (3) 21 SB
-
-gr
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 406 285 (Contents) 285 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-225 581 29 (1) 29 SB
-
-375 581 369 (Web Overview) 369 SB
-
-1575 581 160 (page 5) 160 SB
-
-225 719 29 (2) 29 SB
-
-375 719 549 (WebSTONE overview) 549 SB
-
-1575 719 160 (page 5) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 797 63 (2.1) 63 SB
-
-525 797 818 (The WebSTONE as a performance tester) 818 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 788 160 (page 6) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 866 76 (2.2 ) 76 SB
-
-525 866 533 (WebSTONE\222s measure of ) 533 SB
-
-1058 866 386 (server Performance) 386 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 857 160 (page 6) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 935 63 (2.3) 63 SB
-
-525 935 692 (What the WebSTONE doesn\222t test) 692 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 926 160 (page 7) 160 SB
-
-225 1064 29 (3) 29 SB
-
-375 1064 642 (WebSTONE Architecture) 642 SB
-
-1575 1064 160 (page 7) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1142 63 (3.1) 63 SB
-
-525 1142 448 (WebSTONE Software) 448 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1133 160 (page 8) 160 SB
-
-225 1261 29 (4) 29 SB
-
-375 1261 649 (Configuration Parameters) 649 SB
-
-1575 1261 160 (page 9) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1339 63 (4.1) 63 SB
-
-525 1339 274 (Duration test) 274 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1330 160 (page 9) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1408 63 (4.2) 63 SB
-
-525 1408 303 (Repetition test) 303 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1399 160 (page 9) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1477 63 (4.3) 63 SB
-
-525 1477 308 (Number of files) 308 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1468 160 (page 9) 160 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1546 63 (4.4) 63 SB
-
-525 1546 341 (Number of pages) 341 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1537 189 (page 10) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1615 63 (4.5) 63 SB
-
-525 1615 875 (Server software and hardware configuration) 875 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1606 189 (page 10) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1684 63 (4.6) 63 SB
-
-525 1684 478 (Number of Webchildren) 478 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1675 189 (page 10) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1753 63 (4.7) 63 SB
-
-525 1753 412 (Number of networks) 412 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1744 189 (page 10) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1822 63 (4.8) 63 SB
-
-525 1822 354 (Number of clients) 354 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1813 189 (page 11) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1891 63 (4.9) 63 SB
-
-525 1891 379 (Workload of pages) 379 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1882 189 (page 11) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1960 88 (4.10) 88 SB
-
-525 1960 167 (Logging) 167 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 1951 189 (page 11) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2029 88 (4.11) 88 SB
-
-525 2029 218 (Debugging) 218 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2020 189 (page 11) 189 SB
-
-225 2158 29 (5) 29 SB
-
-375 2158 551 (Workload Parameters) 551 SB
-
-1575 2158 189 (page 11) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2236 63 (5.1) 63 SB
-
-525 2236 401 (General modem mix) 401 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2227 189 (page 11) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2305 63 (5.2) 63 SB
-
-525 2305 241 (General mix) 241 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2296 189 (page 12) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2374 63 (5.3) 63 SB
-
-525 2374 299 (Media rich mix) 299 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2365 189 (page 12) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2443 63 (5.4) 63 SB
-
-525 2443 544 (General and media rich mix) 544 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2434 189 (page 12) 189 SB
-
-225 2572 29 (6) 29 SB
-
-375 2572 420 (Load Generation) 420 SB
-
-1575 2572 189 (page 12) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2650 76 (6.1 ) 76 SB
-
-525 2650 284 (Page selection) 284 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2641 189 (page 12) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2719 63 (6.2) 63 SB
-
-525 2719 236 (Page access) 236 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2710 189 (page 13) 189 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2788 63 (6.3) 63 SB
-
-525 2788 389 (Duration of the test) 389 SB
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-1575 2779 189 (page 13) 189 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 4 4
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (4) 21 SB
-
-gr
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-225 238 29 (7) 29 SB
-
-375 238 482 (Benchmark Results) 482 SB
-
-1575 238 189 (page 13) 189 SB
-
-225 307 73 (7.1) 73 SB
-
-375 307 485 (Summary of results) 485 SB
-
-1575 307 189 (page 20) 189 SB
-
-225 445 29 (8) 29 SB
-
-375 445 327 (Future Work) 327 SB
-
-1575 445 189 (page 21) 189 SB
-
-225 583 29 (9) 29 SB
-
-375 583 449 (Acknowledgments) 449 SB
-
-1575 583 189 (page 22) 189 SB
-
-225 721 58 (10) 58 SB
-
-375 721 491 (Author Information) 491 SB
-
-1575 721 189 (page 22) 189 SB
-
-225 859 58 (11) 58 SB
-
-375 859 114 (Refe) 114 SB
-
-489 859 158 (rences) 158 SB
-
-1575 859 189 (page 22) 189 SB
-
-225 997 58 (12) 58 SB
-
-375 997 309 (Trademarks) 309 SB
-
-1575 997 189 (page 22) 189 SB
-
-225 1135 187 (Figures) 187 SB
-
-225 1263 208 (Figure 3) 208 SB
-
-675 1263 798 (A WebSTONE test environment) 798 SB
-
-1575 1263 160 (page 7) 160 SB
-
-225 1332 267 (Figure 3.1 ) 267 SB
-
-675 1332 484 (Webchildren client ) 484 SB
-
-1575 1332 160 (page 8) 160 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 5 5
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (5) 21 SB
-
-gr
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 347 551 (1. Web Overview) 551 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 522 108 (Since) 108 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-483 498 19 ( ) 25 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-508 522 74 (the ) 80 SB
-
-588 522 145 (advent ) 151 SB
-
-739 522 54 (of ) 60 SB
-
-799 522 74 (the ) 81 SB
-
-880 522 164 (internet ) 171 SB
-
-1051 522 102 (over ) 109 SB
-
-1160 522 63 (20 ) 70 SB
-
-1230 522 116 (years ) 123 SB
-
-1353 522 99 (ago, ) 106 SB
-
-1459 522 113 (there ) 120 SB
-
-1579 522 78 (has ) 85 SB
-
-1664 522 78 (not ) 85 SB
-
-1749 522 105 (been ) 112 SB
-
-1861 522 59 (an ) 66 SB
-
-1927 522 99 (easy ) 106 SB
-
-2033 522 94 (way ) 101 SB
-
-2134 522 41 (to) 41 SB
-
-225 581 139 (access ) 140 SB
-
-365 581 243 (information ) 244 SB
-
-609 581 63 (on ) 64 SB
-
-673 581 74 (the ) 75 SB
-
-748 581 178 (network ) 179 SB
-
-927 581 134 (unless ) 135 SB
-
-1062 581 87 (you ) 88 SB
-
-1150 581 110 (were ) 111 SB
-
-1261 581 203 (proficient ) 204 SB
-
-1465 581 100 (with ) 101 SB
-
-1566 581 35 (a ) 37 SB
-
-1603 581 162 (number ) 164 SB
-
-1767 581 54 (of ) 56 SB
-
-1823 581 138 (UNIX ) 140 SB
-
-1963 581 212 (commands) 212 SB
-
-225 640 84 (and ) 86 SB
-
-311 640 237 (understood ) 239 SB
-
-550 640 99 (how ) 101 SB
-
-651 640 74 (the ) 76 SB
-
-727 640 178 (network ) 180 SB
-
-907 640 236 (functioned. ) 238 SB
-
-1145 640 13 ( ) 16 SB
-
-1161 640 86 (But ) 89 SB
-
-1250 640 112 (now, ) 115 SB
-
-1365 640 142 (thanks ) 145 SB
-
-1510 640 54 (to ) 57 SB
-
-1567 640 152 (HTTP, ) 155 SB
-
-1722 640 74 (the ) 77 SB
-
-1799 640 133 (ability ) 136 SB
-
-1935 640 54 (to ) 57 SB
-
-1992 640 183 (reference) 183 SB
-
-225 699 1548 (information and to travel the net \(known as surfing\) has been made incredibly ) 1549 SB
-
-1774 699 153 (simple. ) 154 SB
-
-1928 699 13 ( ) 14 SB
-
-1942 699 48 (A ) 49 SB
-
-1991 699 96 (user ) 97 SB
-
-2088 699 87 (with) 87 SB
-
-225 758 35 (a ) 39 SB
-
-264 758 102 (GUI ) 106 SB
-
-370 758 211 (\(graphical ) 215 SB
-
-585 758 96 (user ) 101 SB
-
-686 758 13 ( ) 18 SB
-
-704 758 201 (interface\) ) 206 SB
-
-910 758 81 (can ) 86 SB
-
-996 758 179 (navigate ) 184 SB
-
-1180 758 169 (through ) 174 SB
-
-1354 758 74 (the ) 79 SB
-
-1433 758 164 (internet ) 169 SB
-
-1602 758 54 (as ) 59 SB
-
-1661 758 123 (easily ) 128 SB
-
-1789 758 54 (as ) 59 SB
-
-1848 758 97 (they ) 102 SB
-
-1950 758 64 (do ) 69 SB
-
-2019 758 156 (through) 156 SB
-
-225 817 1438 (their windows based personal computers with the click of mouse button.) 1438 SB
-
-375 935 139 (HTTP ) 148 SB
-
-523 935 44 (is ) 53 SB
-
-576 935 59 (an ) 68 SB
-
-644 935 339 (application-level ) 348 SB
-
-992 935 182 (protocol ) 191 SB
-
-1183 935 100 (with ) 109 SB
-
-1292 935 87 (low ) 96 SB
-
-1388 935 195 (overhead ) 204 SB
-
-1592 935 84 (and ) 93 SB
-
-1685 935 74 (the ) 83 SB
-
-1768 935 126 (speed ) 136 SB
-
-1904 935 203 (necessary ) 213 SB
-
-2117 935 58 (for) 58 SB
-
-225 994 237 (distributed, ) 248 SB
-
-473 994 282 (collaborative, ) 293 SB
-
-766 994 242 (hypermedia ) 254 SB
-
-1020 994 243 (information ) 255 SB
-
-1275 994 180 (systems. ) 192 SB
-
-1467 994 13 ( ) 25 SB
-
-1492 994 45 (It ) 57 SB
-
-1549 994 44 (is ) 56 SB
-
-1605 994 35 (a ) 47 SB
-
-1652 994 170 (generic, ) 182 SB
-
-1834 994 191 (stateless, ) 203 SB
-
-2037 994 138 (object-) 138 SB
-
-225 1053 176 (oriented ) 178 SB
-
-403 1053 182 (protocol ) 185 SB
-
-588 1053 131 (which ) 134 SB
-
-722 1053 81 (can ) 84 SB
-
-806 1053 59 (be ) 62 SB
-
-868 1053 104 (used ) 107 SB
-
-975 1053 71 (for ) 74 SB
-
-1049 1053 119 (many ) 122 SB
-
-1171 1053 126 (tasks, ) 129 SB
-
-1300 1053 103 (such ) 106 SB
-
-1406 1053 54 (as ) 57 SB
-
-1463 1053 118 (name ) 121 SB
-
-1584 1053 153 (servers ) 156 SB
-
-1740 1053 84 (and ) 87 SB
-
-1827 1053 224 (distributed ) 227 SB
-
-2054 1053 121 (object) 121 SB
-
-225 1112 1768 (management systems, through extensions of its request methods \(commands\). A feature ) 1769 SB
-
-1994 1112 54 (of ) 55 SB
-
-2049 1112 126 (HTTP) 126 SB
-
-225 1171 44 (is ) 45 SB
-
-270 1171 74 (the ) 75 SB
-
-345 1171 137 (typing ) 138 SB
-
-483 1171 84 (and ) 85 SB
-
-568 1171 236 (negotiation ) 238 SB
-
-806 1171 54 (of ) 56 SB
-
-862 1171 97 (data ) 99 SB
-
-961 1171 308 (representation, ) 310 SB
-
-1271 1171 182 (allowing ) 184 SB
-
-1455 1171 167 (systems ) 169 SB
-
-1624 1171 54 (to ) 56 SB
-
-1680 1171 59 (be ) 61 SB
-
-1741 1171 101 (built ) 103 SB
-
-1844 1171 288 (independently ) 290 SB
-
-2134 1171 41 (of) 41 SB
-
-225 1230 74 (the ) 85 SB
-
-310 1230 97 (data ) 108 SB
-
-418 1230 120 (being ) 131 SB
-
-549 1230 241 (transferred. ) 252 SB
-
-801 1230 13 ( ) 24 SB
-
-825 1230 90 (The ) 101 SB
-
-926 1230 182 (protocol ) 193 SB
-
-1119 1230 44 (is ) 55 SB
-
-1174 1230 179 (typically ) 191 SB
-
-1365 1230 156 (layered ) 168 SB
-
-1533 1230 63 (on ) 75 SB
-
-1608 1230 79 (top ) 91 SB
-
-1699 1230 54 (of ) 66 SB
-
-1765 1230 164 (TCP/IP ) 176 SB
-
-1941 1230 49 (in ) 61 SB
-
-2002 1230 120 (order ) 132 SB
-
-2134 1230 41 (to) 41 SB
-
-225 1289 207 (guarantee ) 213 SB
-
-438 1289 97 (data ) 103 SB
-
-541 1289 177 (transfer. ) 183 SB
-
-724 1289 13 ( ) 19 SB
-
-743 1289 127 (Other ) 133 SB
-
-876 1289 181 (methods ) 188 SB
-
-1064 1289 54 (of ) 61 SB
-
-1125 1289 97 (data ) 104 SB
-
-1229 1289 164 (transfer ) 171 SB
-
-1400 1289 141 (maybe ) 148 SB
-
-1548 1289 117 (used, ) 124 SB
-
-1672 1289 90 (but, ) 97 SB
-
-1769 1289 74 (the ) 81 SB
-
-1850 1289 93 (vast ) 100 SB
-
-1950 1289 177 (majority ) 184 SB
-
-2134 1289 41 (of) 41 SB
-
-225 1348 982 (existing systems use TCP/IP for HTTP transfers. ) 983 SB
-
-1208 1348 13 ( ) 14 SB
-
-1222 1348 90 (The ) 91 SB
-
-1313 1348 182 (protocol ) 183 SB
-
-1496 1348 169 (consists ) 170 SB
-
-1666 1348 54 (of ) 55 SB
-
-1721 1348 35 (a ) 36 SB
-
-1757 1348 158 (request ) 159 SB
-
-1916 1348 84 (and ) 85 SB
-
-2001 1348 174 (response) 174 SB
-
-225 1407 1182 (paradigm. See reference for further information on HTTP.) 1182 SB
-
-375 1525 117 (Once ) 119 SB
-
-494 1525 35 (a ) 37 SB
-
-531 1525 161 (content ) 163 SB
-
-694 1525 56 (or ) 58 SB
-
-752 1525 242 (commercial ) 244 SB
-
-996 1525 181 (provider ) 183 SB
-
-1179 1525 78 (has ) 80 SB
-
-1259 1525 103 (their ) 105 SB
-
-1364 1525 139 (HTTP ) 141 SB
-
-1505 1525 134 (server ) 136 SB
-
-1641 1525 63 (on ) 65 SB
-
-1706 1525 74 (the ) 76 SB
-
-1782 1525 169 (Internet ) 171 SB
-
-1953 1525 35 (a ) 37 SB
-
-1990 1525 96 (user ) 98 SB
-
-2088 1525 87 (with) 87 SB
-
-225 1584 74 (the ) 79 SB
-
-304 1584 79 (use ) 84 SB
-
-388 1584 54 (of ) 59 SB
-
-447 1584 59 (an ) 65 SB
-
-512 1584 164 (internet ) 170 SB
-
-682 1584 174 (browser ) 180 SB
-
-862 1584 13 ( ) 19 SB
-
-881 1584 44 (is ) 50 SB
-
-931 1584 93 (able ) 99 SB
-
-1030 1584 54 (to ) 60 SB
-
-1090 1584 139 (access ) 145 SB
-
-1235 1584 74 (the ) 80 SB
-
-1315 1584 181 (provider ) 187 SB
-
-1502 1584 100 (with ) 106 SB
-
-1608 1584 35 (a ) 41 SB
-
-1649 1584 185 (common ) 191 SB
-
-1840 1584 184 (interface ) 190 SB
-
-2030 1584 145 (defined) 145 SB
-
-225 1643 169 (through ) 179 SB
-
-404 1643 74 (the ) 84 SB
-
-488 1643 136 (Hyper ) 146 SB
-
-634 1643 105 (Text ) 115 SB
-
-749 1643 171 (Markup ) 182 SB
-
-931 1643 208 (Language ) 219 SB
-
-1150 1643 201 (\(HTML\), ) 212 SB
-
-1362 1643 131 (which ) 142 SB
-
-1504 1643 44 (is ) 55 SB
-
-1559 1643 35 (a ) 46 SB
-
-1605 1643 137 (subset ) 148 SB
-
-1753 1643 54 (of ) 65 SB
-
-1818 1643 151 (SGML ) 162 SB
-
-1980 1643 195 (\(Standard) 195 SB
-
-225 1702 645 (Generalized Markup Language\).) 645 SB
-
-375 1820 1335 (HTML is a simple markup language used to create documents that ) 1336 SB
-
-1711 1820 95 (may ) 96 SB
-
-1807 1820 59 (be ) 60 SB
-
-1867 1820 142 (shared ) 143 SB
-
-2010 1820 165 (between) 165 SB
-
-225 1879 180 (different ) 183 SB
-
-408 1879 214 (platforms. ) 217 SB
-
-625 1879 13 ( ) 16 SB
-
-641 1879 90 (The ) 94 SB
-
-735 1879 190 (language ) 194 SB
-
-929 1879 140 (allows ) 144 SB
-
-1073 1879 102 (text, ) 106 SB
-
-1179 1879 110 (data, ) 114 SB
-
-1293 1879 192 (graphics, ) 196 SB
-
-1489 1879 127 (news, ) 131 SB
-
-1620 1879 96 (mail ) 100 SB
-
-1720 1879 84 (and ) 88 SB
-
-1808 1879 35 (a ) 39 SB
-
-1847 1879 162 (number ) 166 SB
-
-2013 1879 54 (of ) 58 SB
-
-2071 1879 104 (other) 104 SB
-
-225 1938 157 (utilities ) 159 SB
-
-384 1938 54 (to ) 57 SB
-
-441 1938 162 (interact ) 165 SB
-
-606 1938 100 (with ) 103 SB
-
-709 1938 74 (the ) 77 SB
-
-786 1938 139 (HTTP ) 142 SB
-
-928 1938 134 (server ) 137 SB
-
-1065 1938 84 (and ) 87 SB
-
-1152 1938 187 (browser. ) 190 SB
-
-1342 1938 13 ( ) 16 SB
-
-1358 1938 99 (This ) 102 SB
-
-1460 1938 115 (gives ) 118 SB
-
-1578 1938 74 (the ) 77 SB
-
-1655 1938 96 (user ) 99 SB
-
-1754 1938 74 (the ) 77 SB
-
-1831 1938 177 (freedom ) 180 SB
-
-2011 1938 54 (to ) 57 SB
-
-2068 1938 107 (enjoy) 107 SB
-
-225 1997 1501 (the benefits of the provider without having to know how it is accomplished.) 1501 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2234 57 (2.) 57 SB
-
-375 2234 708 (WebSTONE overview) 708 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2409 90 (The ) 92 SB
-
-467 2409 267 (WebSTONE ) 269 SB
-
-736 2409 44 (is ) 46 SB
-
-782 2409 35 (a ) 38 SB
-
-820 2409 95 (new ) 98 SB
-
-918 2409 230 (benchmark ) 233 SB
-
-1151 2409 89 (that ) 92 SB
-
-1243 2409 103 (tests ) 106 SB
-
-1349 2409 74 (the ) 77 SB
-
-1426 2409 262 (performance ) 265 SB
-
-1691 2409 54 (of ) 57 SB
-
-1748 2409 139 (HTTP ) 142 SB
-
-1890 2409 13 ( ) 16 SB
-
-1906 2409 49 (in ) 52 SB
-
-1958 2409 173 (contrast ) 176 SB
-
-2134 2409 41 (to) 41 SB
-
-225 2468 435 (server platform\222s and ) 436 SB
-
-661 2468 180 (different ) 181 SB
-
-842 2468 337 (implementations ) 338 SB
-
-1180 2468 54 (of ) 55 SB
-
-1235 2468 152 (HTTP. ) 153 SB
-
-1388 2468 13 ( ) 14 SB
-
-1402 2468 178 (Because ) 179 SB
-
-1581 2468 113 (there ) 114 SB
-
-1695 2468 74 (are ) 75 SB
-
-1770 2468 119 (many ) 120 SB
-
-1890 2468 180 (different ) 181 SB
-
-2071 2468 104 (types) 104 SB
-
-225 2527 54 (of ) 55 SB
-
-280 2527 134 (server ) 135 SB
-
-415 2527 185 (software ) 186 SB
-
-601 2527 89 (that ) 90 SB
-
-691 2527 44 (is ) 45 SB
-
-736 2527 190 (currently ) 191 SB
-
-927 2527 198 (available, ) 199 SB
-
-1126 2527 13 ( ) 15 SB
-
-1141 2527 54 (as ) 56 SB
-
-1197 2527 95 (well ) 97 SB
-
-1294 2527 54 (as ) 56 SB
-
-1350 2527 180 (different ) 182 SB
-
-1532 2527 198 (hardware ) 200 SB
-
-1732 2527 214 (platforms, ) 216 SB
-
-1948 2527 113 (there ) 115 SB
-
-2063 2527 112 (needs) 112 SB
-
-225 2586 54 (to ) 55 SB
-
-280 2586 59 (be ) 60 SB
-
-340 2586 35 (a ) 36 SB
-
-376 2586 232 (mechanism ) 233 SB
-
-609 2586 71 (for ) 72 SB
-
-681 2586 145 (testing ) 146 SB
-
-827 2586 291 (benchmarking ) 293 SB
-
-1120 2586 134 (server ) 136 SB
-
-1256 2586 185 (software ) 187 SB
-
-1443 2586 84 (and ) 86 SB
-
-1529 2586 198 (hardware ) 200 SB
-
-1729 2586 182 (platform ) 184 SB
-
-1913 2586 262 (performance.) 262 SB
-
-225 2645 90 (The ) 99 SB
-
-324 2645 267 (WebSTONE ) 276 SB
-
-600 2645 44 (is ) 53 SB
-
-653 2645 35 (a ) 44 SB
-
-697 2645 230 (benchmark ) 239 SB
-
-936 2645 89 (that ) 98 SB
-
-1034 2645 183 (attempts ) 192 SB
-
-1226 2645 54 (to ) 63 SB
-
-1289 2645 64 (do ) 73 SB
-
-1362 2645 96 (this. ) 105 SB
-
-1467 2645 13 ( ) 23 SB
-
-1490 2645 67 (As ) 77 SB
-
-1567 2645 100 (with ) 110 SB
-
-1677 2645 82 (any ) 92 SB
-
-1769 2645 95 (new ) 105 SB
-
-1874 2645 230 (benchmark ) 240 SB
-
-2114 2645 61 (the) 61 SB
-
-225 2704 267 (WebSTONE ) 269 SB
-
-494 2704 44 (is ) 46 SB
-
-540 2704 35 (a ) 37 SB
-
-577 2704 162 (starting ) 164 SB
-
-741 2704 128 (point. ) 130 SB
-
-871 2704 13 ( ) 15 SB
-
-886 2704 117 (Once ) 119 SB
-
-1005 2704 74 (the ) 76 SB
-
-1081 2704 230 (benchmark ) 232 SB
-
-1313 2704 44 (is ) 46 SB
-
-1359 2704 226 (introduced ) 228 SB
-
-1587 2704 90 (into ) 92 SB
-
-1679 2704 74 (the ) 76 SB
-
-1755 2704 157 (general ) 159 SB
-
-1914 2704 13 ( ) 15 SB
-
-1929 2704 139 (World ) 141 SB
-
-2070 2704 105 (Wide) 105 SB
-
-225 2763 1669 (Web \(WWW\) community, improvements and enhancements will be made to further ) 1670 SB
-
-1895 2763 74 (the ) 75 SB
-
-1970 2763 79 (use ) 80 SB
-
-2050 2763 54 (of ) 55 SB
-
-2105 2763 70 (this) 70 SB
-
-225 2822 1068 (benchmark in support of better end user performance.) 1068 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 6 6
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (6) 21 SB
-
-gr
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 219 121 (Since ) 125 SB
-
-500 219 74 (the ) 78 SB
-
-578 219 260 (functionality ) 264 SB
-
-842 219 54 (of ) 58 SB
-
-900 219 74 (the ) 78 SB
-
-978 219 105 (Web ) 109 SB
-
-1087 219 44 (is ) 48 SB
-
-1135 219 144 (similar ) 148 SB
-
-1283 219 54 (to ) 58 SB
-
-1341 219 74 (the ) 78 SB
-
-1419 219 260 (functionality ) 265 SB
-
-1684 219 54 (of ) 59 SB
-
-1743 219 166 (NFS\231, ) 171 SB
-
-1914 219 74 (the ) 79 SB
-
-1993 219 182 (LADDIS) 182 SB
-
-225 278 230 (benchmark ) 233 SB
-
-458 278 90 (was ) 93 SB
-
-551 278 193 (reviewed ) 196 SB
-
-747 278 71 (for ) 74 SB
-
-821 278 13 ( ) 16 SB
-
-837 278 172 (possible ) 175 SB
-
-1012 278 54 (as ) 57 SB
-
-1069 278 74 (the ) 77 SB
-
-1146 278 95 (web ) 98 SB
-
-1244 278 243 (benchmark. ) 246 SB
-
-1490 278 13 ( ) 16 SB
-
-1506 278 302 (Unfortunately, ) 305 SB
-
-1811 278 113 (there ) 117 SB
-
-1928 278 90 (was ) 94 SB
-
-2022 278 63 (no ) 67 SB
-
-2089 278 86 (easy) 86 SB
-
-225 337 94 (way ) 97 SB
-
-322 337 54 (to ) 57 SB
-
-379 337 122 (adapt ) 125 SB
-
-504 337 83 (this ) 86 SB
-
-590 337 243 (benchmark. ) 246 SB
-
-836 337 13 ( ) 16 SB
-
-852 337 209 (However, ) 212 SB
-
-1064 337 195 (LADDIS ) 198 SB
-
-1262 337 75 (did ) 78 SB
-
-1340 337 108 (offer ) 111 SB
-
-1451 337 35 (a ) 38 SB
-
-1489 337 238 (perspective ) 241 SB
-
-1730 337 63 (on ) 67 SB
-
-1797 337 99 (how ) 103 SB
-
-1900 337 54 (to ) 58 SB
-
-1958 337 217 (benchmark) 217 SB
-
-225 396 255 (client/server ) 258 SB
-
-483 396 273 (environment. ) 276 SB
-
-759 396 13 ( ) 16 SB
-
-775 396 90 (The ) 93 SB
-
-868 396 267 (WebSTONE ) 270 SB
-
-1138 396 44 (is ) 47 SB
-
-1185 396 104 (used ) 107 SB
-
-1292 396 54 (to ) 58 SB
-
-1350 396 177 (measure ) 181 SB
-
-1531 396 207 (maximum ) 211 SB
-
-1742 396 84 (and ) 88 SB
-
-1830 396 167 (average ) 171 SB
-
-2001 396 174 (response) 174 SB
-
-225 455 118 (times ) 133 SB
-
-358 455 71 (for ) 87 SB
-
-445 455 229 (connecting ) 245 SB
-
-690 455 54 (to ) 70 SB
-
-760 455 74 (the ) 90 SB
-
-850 455 147 (server. ) 163 SB
-
-1013 455 13 ( ) 29 SB
-
-1042 455 54 (In ) 70 SB
-
-1112 455 174 (addition ) 190 SB
-
-1302 455 234 (throughput ) 250 SB
-
-1552 455 97 (data ) 113 SB
-
-1665 455 44 (is ) 60 SB
-
-1725 455 92 (also ) 108 SB
-
-1833 455 220 (generated. ) 236 SB
-
-2069 455 13 ( ) 29 SB
-
-2098 455 77 (The) 77 SB
-
-225 514 267 (WebSTONE ) 268 SB
-
-493 514 13 ( ) 14 SB
-
-507 514 44 (is ) 45 SB
-
-552 514 190 (executed ) 191 SB
-
-743 514 306 (simultaneously ) 307 SB
-
-1050 514 63 (on ) 64 SB
-
-1114 514 85 (one ) 86 SB
-
-1200 514 56 (or ) 57 SB
-
-1257 514 115 (more ) 116 SB
-
-1373 514 139 (clients ) 141 SB
-
-1514 514 169 (resident ) 171 SB
-
-1685 514 63 (on ) 65 SB
-
-1750 514 74 (the ) 76 SB
-
-1826 514 169 (server\222s ) 171 SB
-
-1997 514 178 (network.) 178 SB
-
-225 573 112 (Each ) 118 SB
-
-343 573 120 (client ) 126 SB
-
-469 573 44 (is ) 50 SB
-
-519 573 93 (able ) 99 SB
-
-618 573 54 (to ) 60 SB
-
-678 573 142 (launch ) 148 SB
-
-826 573 35 (a ) 41 SB
-
-867 573 162 (number ) 169 SB
-
-1036 573 54 (of ) 61 SB
-
-1097 573 171 (children ) 178 SB
-
-1275 573 145 (\(called ) 152 SB
-
-1427 573 280 (Webchildren\) ) 287 SB
-
-1714 573 217 (depending ) 224 SB
-
-1938 573 63 (on ) 70 SB
-
-2008 573 99 (how ) 106 SB
-
-2114 573 61 (the) 61 SB
-
-225 632 290 (system load is ) 291 SB
-
-516 632 239 (configured. ) 240 SB
-
-756 632 13 ( ) 14 SB
-
-770 632 112 (Each ) 113 SB
-
-883 632 263 (Webchildren ) 264 SB
-
-1147 632 44 (is ) 45 SB
-
-1192 632 93 (able ) 94 SB
-
-1286 632 54 (to ) 55 SB
-
-1341 632 158 (request ) 159 SB
-
-1500 632 243 (information ) 244 SB
-
-1744 632 108 (from ) 109 SB
-
-1853 632 74 (the ) 75 SB
-
-1928 632 134 (server ) 135 SB
-
-2063 632 112 (based) 112 SB
-
-225 691 63 (on ) 70 SB
-
-295 691 35 (a ) 42 SB
-
-337 691 120 (given ) 127 SB
-
-464 691 74 (file ) 81 SB
-
-545 691 111 (load. ) 118 SB
-
-663 691 13 ( ) 20 SB
-
-683 691 90 (The ) 97 SB
-
-780 691 267 (WebSTONE ) 274 SB
-
-1054 691 44 (is ) 51 SB
-
-1105 691 154 (written ) 161 SB
-
-1266 691 54 (to ) 62 SB
-
-1328 691 59 (be ) 67 SB
-
-1395 691 253 (independent ) 261 SB
-
-1656 691 54 (of ) 62 SB
-
-1718 691 74 (the ) 82 SB
-
-1800 691 134 (server ) 142 SB
-
-1942 691 182 (platform ) 190 SB
-
-2132 691 43 (or) 43 SB
-
-225 750 1347 (software running on it. In essence it treats the server as a blackbox.) 1347 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 869 95 (2.1) 95 SB
-
-375 869 1477 (The WebSTONE as a measure of performance) 1477 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1044 54 (In ) 59 SB
-
-434 1044 174 (addition ) 179 SB
-
-613 1044 54 (to ) 59 SB
-
-672 1044 35 (a ) 40 SB
-
-712 1044 230 (benchmark ) 236 SB
-
-948 1044 89 (that ) 95 SB
-
-1043 1044 201 (generates ) 207 SB
-
-1250 1044 263 (standardized ) 269 SB
-
-1519 1044 97 (data ) 103 SB
-
-1622 1044 71 (for ) 77 SB
-
-1699 1044 243 (comparison ) 249 SB
-
-1948 1044 54 (of ) 60 SB
-
-2008 1044 167 (different) 167 SB
-
-225 1103 1542 (platforms, the WebSTONE is also a performance tester and maybe used as a ) 1543 SB
-
-1768 1103 92 (tool ) 93 SB
-
-1861 1103 54 (to ) 55 SB
-
-1916 1103 13 ( ) 14 SB
-
-1930 1103 96 (help ) 97 SB
-
-2027 1103 148 (identify) 148 SB
-
-225 1162 262 (performance ) 265 SB
-
-490 1162 348 (characterizations ) 351 SB
-
-841 1162 54 (of ) 57 SB
-
-898 1162 134 (server ) 137 SB
-
-1035 1162 214 (platforms. ) 217 SB
-
-1252 1162 13 ( ) 16 SB
-
-1268 1162 45 (It ) 48 SB
-
-1316 1162 44 (is ) 48 SB
-
-1364 1162 81 (our ) 85 SB
-
-1449 1162 98 (goal ) 102 SB
-
-1551 1162 89 (that ) 93 SB
-
-1644 1162 74 (the ) 78 SB
-
-1722 1162 230 (benchmark ) 234 SB
-
-1956 1162 85 (will ) 89 SB
-
-2045 1162 130 (evolve) 130 SB
-
-225 1221 1687 (and will help define a standard the WWW community may use when comparing data.) 1687 SB
-
-375 1339 115 (Used ) 122 SB
-
-497 1339 54 (as ) 61 SB
-
-558 1339 35 (a ) 42 SB
-
-600 1339 262 (performance ) 270 SB
-
-870 1339 92 (tool ) 100 SB
-
-970 1339 74 (the ) 82 SB
-
-1052 1339 280 (WebSTONE, ) 288 SB
-
-1340 1339 98 (uses ) 106 SB
-
-1446 1339 202 (workload ) 210 SB
-
-1656 1339 231 (parameters ) 239 SB
-
-1895 1339 84 (and ) 92 SB
-
-1987 1339 139 (clients ) 147 SB
-
-2134 1339 41 (to) 41 SB
-
-225 1398 182 (generate ) 185 SB
-
-410 1398 139 (HTTP ) 142 SB
-
-552 1398 131 (traffic ) 134 SB
-
-686 1398 89 (that ) 92 SB
-
-778 1398 140 (allows ) 144 SB
-
-922 1398 59 (an ) 63 SB
-
-985 1398 139 (HTTP ) 143 SB
-
-1128 1398 134 (server ) 138 SB
-
-1266 1398 54 (to ) 58 SB
-
-1324 1398 59 (be ) 63 SB
-
-1387 1398 171 (stressed ) 175 SB
-
-1562 1398 49 (in ) 53 SB
-
-1615 1398 35 (a ) 39 SB
-
-1654 1398 162 (number ) 166 SB
-
-1820 1398 54 (of ) 58 SB
-
-1878 1398 180 (different ) 184 SB
-
-2062 1398 113 (ways.) 113 SB
-
-225 1457 1867 (This can gives insight into the server\222s behavior and performance in a variety of environments.) 1867 SB
-
-375 1575 129 (There ) 131 SB
-
-506 1575 96 (four ) 98 SB
-
-604 1575 180 (different ) 182 SB
-
-786 1575 221 (workloads ) 223 SB
-
-1009 1575 89 (that ) 91 SB
-
-1100 1575 196 (represent ) 198 SB
-
-1298 1575 35 (a ) 37 SB
-
-1335 1575 150 (sample ) 152 SB
-
-1487 1575 54 (of ) 57 SB
-
-1544 1575 74 (the ) 77 SB
-
-1621 1575 166 (existing ) 169 SB
-
-1790 1575 153 (servers ) 156 SB
-
-1946 1575 190 (currently ) 193 SB
-
-2139 1575 36 (in) 36 SB
-
-225 1634 311 (use on the web.) 311 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 1691 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 1696 1647 (The first one is a workload for general use actives that is sensitive to modem users.) 1647 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 1753 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 1758 90 (The ) 93 SB
-
-393 1758 151 (second ) 154 SB
-
-547 1758 202 (workload ) 205 SB
-
-752 1758 44 (is ) 47 SB
-
-799 1758 35 (a ) 39 SB
-
-838 1758 157 (general ) 161 SB
-
-999 1758 86 (mix ) 90 SB
-
-1089 1758 89 (that ) 93 SB
-
-1182 1758 44 (is ) 48 SB
-
-1230 1758 78 (not ) 82 SB
-
-1312 1758 54 (as ) 58 SB
-
-1370 1758 217 (concerned ) 221 SB
-
-1591 1758 100 (with ) 104 SB
-
-1695 1758 74 (the ) 78 SB
-
-1773 1758 160 (modem ) 164 SB
-
-1937 1758 109 (user, ) 113 SB
-
-2050 1758 90 (but, ) 94 SB
-
-2144 1758 31 (is) 31 SB
-
-300 1817 646 (still sensitive to download times.) 646 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 1874 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 1879 1204 (The third mix is a media rich mix that has very large content.) 1204 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 1936 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 1941 1228 (the fourth mix is a combination of both the first and third mix.) 1228 SB
-
-375 2059 45 (It ) 50 SB
-
-425 2059 144 (should ) 149 SB
-
-574 2059 59 (be ) 64 SB
-
-638 2059 125 (noted ) 130 SB
-
-768 2059 89 (that ) 94 SB
-
-862 2059 112 (since ) 117 SB
-
-979 2059 74 (the ) 79 SB
-
-1058 2059 95 (web ) 100 SB
-
-1158 2059 44 (is ) 49 SB
-
-1207 2059 83 (still ) 89 SB
-
-1296 2059 49 (in ) 55 SB
-
-1351 2059 59 (its ) 65 SB
-
-1416 2059 155 (infancy ) 161 SB
-
-1577 2059 40 (it ) 46 SB
-
-1623 2059 85 (will ) 91 SB
-
-1714 2059 97 (take ) 103 SB
-
-1817 2059 99 (time ) 105 SB
-
-1922 2059 54 (to ) 60 SB
-
-1982 2059 105 (have ) 111 SB
-
-2093 2059 82 (well) 82 SB
-
-225 2118 158 (defined ) 165 SB
-
-390 2118 127 (mixes ) 134 SB
-
-524 2118 89 (that ) 96 SB
-
-620 2118 85 (will ) 93 SB
-
-713 2118 59 (be ) 67 SB
-
-780 2118 227 (considered ) 235 SB
-
-1015 2118 195 (standard. ) 203 SB
-
-1218 2118 13 ( ) 21 SB
-
-1239 2118 45 (It ) 53 SB
-
-1292 2118 92 (also ) 100 SB
-
-1392 2118 144 (should ) 152 SB
-
-1544 2118 59 (be ) 67 SB
-
-1611 2118 125 (noted ) 133 SB
-
-1744 2118 89 (that ) 97 SB
-
-1841 2118 113 (there ) 121 SB
-
-1962 2118 44 (is ) 52 SB
-
-2014 2118 92 (also ) 100 SB
-
-2114 2118 61 (the) 61 SB
-
-225 2177 149 (chance ) 152 SB
-
-377 2177 89 (that ) 92 SB
-
-469 2177 113 (there ) 116 SB
-
-585 2177 85 (will ) 88 SB
-
-673 2177 59 (be ) 62 SB
-
-735 2177 63 (no ) 66 SB
-
-801 2177 103 (such ) 106 SB
-
-907 2177 13 ( ) 16 SB
-
-923 2177 113 (thing ) 116 SB
-
-1039 2177 54 (as ) 57 SB
-
-1096 2177 35 (a ) 38 SB
-
-1134 2177 182 (standard ) 185 SB
-
-1319 2177 86 (mix ) 89 SB
-
-1408 2177 84 (and ) 87 SB
-
-1495 2177 103 (each ) 106 SB
-
-1601 2177 196 (customer ) 199 SB
-
-1800 2177 85 (will ) 88 SB
-
-1888 2177 105 (have ) 109 SB
-
-1997 2177 54 (to ) 58 SB
-
-2055 2177 120 (define) 120 SB
-
-225 2236 1681 (their own mix based on individual sites and run the test against the selected systems.) 1681 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2414 1578 (2.2 WebSTONE\222s measure of server performance) 1578 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2589 90 (The ) 96 SB
-
-471 2589 267 (WebSTONE ) 273 SB
-
-744 2589 44 (is ) 51 SB
-
-795 2589 35 (a ) 42 SB
-
-837 2589 259 (configurable ) 266 SB
-
-1103 2589 230 (benchmark ) 237 SB
-
-1340 2589 89 (that ) 96 SB
-
-1436 2589 140 (allows ) 147 SB
-
-1583 2589 262 (performance ) 269 SB
-
-1852 2589 275 (measurement ) 282 SB
-
-2134 2589 41 (of) 41 SB
-
-225 2648 646 (the server in the following ways:) 646 SB
-
-225 2707 755 (- Average and maximum connect time) 755 SB
-
-225 2766 774 (- Average and maximum response time) 774 SB
-
-225 2825 448 (- Data throughput rate) 448 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Symbol
-
-%%+ font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 7 7
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (7) 21 SB
-
-gr
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-225 169 560 (- Number of pages retrieved) 560 SB
-
-225 228 527 (- Number of files retrieved) 527 SB
-
-375 346 1572 (The benchmark\222s goal is to control as much of the clients running environment ) 1573 SB
-
-1948 346 54 (as ) 55 SB
-
-2003 346 172 (possible.) 172 SB
-
-225 405 1192 (The WebSTONE has no interest in the server configuration.) 1192 SB
-
-375 523 121 (Since ) 122 SB
-
-497 523 74 (the ) 76 SB
-
-573 523 134 (object ) 136 SB
-
-709 523 44 (is ) 46 SB
-
-755 523 54 (to ) 56 SB
-
-811 523 155 (control ) 157 SB
-
-968 523 54 (as ) 56 SB
-
-1024 523 121 (much ) 123 SB
-
-1147 523 54 (of ) 56 SB
-
-1203 523 74 (the ) 76 SB
-
-1279 523 120 (client ) 122 SB
-
-1401 523 260 (environment ) 262 SB
-
-1663 523 54 (as ) 56 SB
-
-1719 523 172 (possible ) 174 SB
-
-1893 523 71 (we ) 73 SB
-
-1966 523 166 (decided ) 168 SB
-
-2134 523 41 (to) 41 SB
-
-225 582 44 (is ) 50 SB
-
-275 582 115 (write ) 121 SB
-
-396 582 74 (the ) 80 SB
-
-476 582 230 (benchmark ) 236 SB
-
-712 582 49 (in ) 55 SB
-
-767 582 46 (C ) 52 SB
-
-819 582 84 (and ) 90 SB
-
-909 582 78 (not ) 84 SB
-
-993 582 54 (to ) 60 SB
-
-1053 582 79 (use ) 85 SB
-
-1138 582 166 (existing ) 172 SB
-
-1310 582 108 (code ) 114 SB
-
-1424 582 170 (libraries ) 176 SB
-
-1600 582 54 (as ) 60 SB
-
-1660 582 97 (they ) 103 SB
-
-1763 582 74 (are ) 80 SB
-
-1843 582 78 (not ) 84 SB
-
-1927 582 154 (written ) 161 SB
-
-2088 582 87 (with) 87 SB
-
-225 641 262 (performance ) 264 SB
-
-489 641 49 (in ) 51 SB
-
-540 641 124 (mind. ) 126 SB
-
-666 641 13 ( ) 15 SB
-
-681 641 90 (The ) 92 SB
-
-773 641 230 (benchmark ) 232 SB
-
-1005 641 122 (sends ) 124 SB
-
-1129 641 139 (HTTP ) 141 SB
-
-1270 641 177 (requests ) 179 SB
-
-1449 641 54 (to ) 56 SB
-
-1505 641 74 (the ) 77 SB
-
-1582 641 134 (server ) 137 SB
-
-1719 641 84 (and ) 87 SB
-
-1806 641 98 (then ) 101 SB
-
-1907 641 204 (processes ) 207 SB
-
-2114 641 61 (the) 61 SB
-
-225 700 262 (performance ) 269 SB
-
-494 700 97 (data ) 104 SB
-
-598 700 119 (when ) 126 SB
-
-724 700 123 (done. ) 130 SB
-
-854 700 13 ( ) 20 SB
-
-874 700 99 (This ) 106 SB
-
-980 700 151 (insures ) 159 SB
-
-1139 700 89 (that ) 97 SB
-
-1236 700 98 (only ) 106 SB
-
-1342 700 74 (the ) 82 SB
-
-1424 700 108 (code ) 116 SB
-
-1540 700 203 (necessary ) 211 SB
-
-1751 700 54 (to ) 62 SB
-
-1813 700 165 (execute ) 173 SB
-
-1986 700 74 (the ) 82 SB
-
-2068 700 107 (given) 107 SB
-
-225 759 879 (request is performed in the most direct path.) 879 SB
-
-375 877 168 (Though ) 178 SB
-
-553 877 113 (there ) 123 SB
-
-676 877 85 (will ) 95 SB
-
-771 877 147 (always ) 157 SB
-
-928 877 59 (be ) 69 SB
-
-997 877 132 (added ) 142 SB
-
-1139 877 195 (overhead ) 205 SB
-
-1344 877 49 (in ) 59 SB
-
-1403 877 74 (the ) 84 SB
-
-1487 877 230 (benchmark ) 240 SB
-
-1727 877 83 (this ) 94 SB
-
-1821 877 161 (ensures ) 172 SB
-
-1993 877 74 (the ) 85 SB
-
-2078 877 97 (most) 97 SB
-
-225 936 155 (control ) 160 SB
-
-385 936 102 (over ) 107 SB
-
-492 936 74 (the ) 79 SB
-
-571 936 188 (accuracy ) 193 SB
-
-764 936 54 (of ) 59 SB
-
-823 936 74 (the ) 79 SB
-
-902 936 243 (benchmark. ) 248 SB
-
-1150 936 13 ( ) 18 SB
-
-1168 936 110 (With ) 116 SB
-
-1284 936 83 (this ) 89 SB
-
-1373 936 162 (method ) 168 SB
-
-1541 936 74 (the ) 80 SB
-
-1621 936 109 (layer ) 115 SB
-
-1736 936 54 (of ) 60 SB
-
-1796 936 166 (existing ) 172 SB
-
-1968 936 170 (libraries ) 176 SB
-
-2144 936 31 (is) 31 SB
-
-225 995 1754 (removed and only what is needed to measure the pure performance of the server is used.) 1754 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1114 95 (2.3) 95 SB
-
-375 1114 1185 (Metrics the WebSTONE doesn\222t test) 1185 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1289 121 (Since ) 134 SB
-
-509 1289 83 (this ) 96 SB
-
-605 1289 230 (benchmark ) 243 SB
-
-848 1289 44 (is ) 57 SB
-
-905 1289 217 (concerned ) 230 SB
-
-1135 1289 98 (only ) 111 SB
-
-1246 1289 100 (with ) 113 SB
-
-1359 1289 74 (the ) 87 SB
-
-1446 1289 134 (server ) 147 SB
-
-1593 1289 185 (software ) 198 SB
-
-1791 1289 84 (and ) 98 SB
-
-1889 1289 211 (hardware, ) 225 SB
-
-2114 1289 61 (the) 61 SB
-
-225 1348 267 (WebSTONE ) 273 SB
-
-498 1348 105 (does ) 111 SB
-
-609 1348 78 (not ) 84 SB
-
-693 1348 84 (test ) 91 SB
-
-784 1348 74 (the ) 81 SB
-
-865 1348 174 (browser ) 181 SB
-
-1046 1348 56 (or ) 63 SB
-
-1109 1348 120 (client ) 127 SB
-
-1236 1348 91 (side ) 98 SB
-
-1334 1348 249 (applications ) 256 SB
-
-1590 1348 56 (or ) 63 SB
-
-1653 1348 183 (libraries. ) 190 SB
-
-1843 1348 13 ( ) 20 SB
-
-1863 1348 13 ( ) 20 SB
-
-1883 1348 168 (Though ) 175 SB
-
-2058 1348 49 (in ) 56 SB
-
-2114 1348 61 (the) 61 SB
-
-225 1407 132 (future ) 138 SB
-
-363 1407 40 (it ) 46 SB
-
-409 1407 126 (might ) 132 SB
-
-541 1407 59 (be ) 65 SB
-
-606 1407 54 (of ) 60 SB
-
-666 1407 159 (interest ) 165 SB
-
-831 1407 54 (to ) 61 SB
-
-892 1407 85 (add ) 92 SB
-
-984 1407 83 (this ) 90 SB
-
-1074 1407 54 (to ) 61 SB
-
-1135 1407 74 (the ) 81 SB
-
-1216 1407 243 (benchmark. ) 250 SB
-
-1466 1407 13 ( ) 20 SB
-
-1486 1407 138 (Please ) 145 SB
-
-1631 1407 76 (see ) 83 SB
-
-1714 1407 132 (future ) 139 SB
-
-1853 1407 193 (additions ) 200 SB
-
-2053 1407 54 (to ) 61 SB
-
-2114 1407 61 (the) 61 SB
-
-225 1466 654 (benchmark in chapter 8, later on ) 655 SB
-
-880 1466 49 (in ) 50 SB
-
-930 1466 83 (this ) 84 SB
-
-1014 1466 124 (paper ) 125 SB
-
-1139 1466 71 (for ) 72 SB
-
-1211 1466 117 (other ) 118 SB
-
-1329 1466 157 (metrics ) 158 SB
-
-1487 1466 89 (that ) 90 SB
-
-1577 1466 83 (this ) 84 SB
-
-1661 1466 230 (benchmark ) 231 SB
-
-1892 1466 190 (currently ) 191 SB
-
-2083 1466 92 (does) 92 SB
-
-225 1525 837 (not test but will need to in the near future.) 837 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1673 57 (3.) 57 SB
-
-375 1673 826 (WebSTONE Architecture) 826 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1848 90 (The ) 92 SB
-
-467 1848 267 (WebSTONE ) 269 SB
-
-736 1848 248 (architecture ) 251 SB
-
-987 1848 44 (is ) 47 SB
-
-1034 1848 142 (shown ) 145 SB
-
-1179 1848 49 (in ) 52 SB
-
-1231 1848 129 (figure ) 132 SB
-
-1363 1848 93 (2-1. ) 96 SB
-
-1459 1848 13 ( ) 16 SB
-
-1475 1848 90 (The ) 93 SB
-
-1568 1848 263 (Webchildren ) 266 SB
-
-1834 1848 74 (are ) 77 SB
-
-1911 1848 214 (controlled ) 217 SB
-
-2128 1848 47 (by) 47 SB
-
-225 1907 74 (the ) 76 SB
-
-301 1907 320 (WebMASTER. ) 322 SB
-
-623 1907 13 ( ) 15 SB
-
-638 1907 90 (The ) 92 SB
-
-730 1907 307 (WebMASTER ) 309 SB
-
-1039 1907 174 (controls ) 177 SB
-
-1216 1907 74 (the ) 77 SB
-
-1293 1907 202 (operation ) 205 SB
-
-1498 1907 54 (of ) 57 SB
-
-1555 1907 74 (the ) 77 SB
-
-1632 1907 230 (benchmark ) 233 SB
-
-1865 1907 92 (run. ) 95 SB
-
-1960 1907 13 ( ) 16 SB
-
-1976 1907 67 (As ) 70 SB
-
-2046 1907 129 (shown) 129 SB
-
-225 1966 49 (in ) 50 SB
-
-275 1966 129 (figure ) 130 SB
-
-405 1966 80 (2-1 ) 81 SB
-
-486 1966 113 (there ) 114 SB
-
-600 1966 74 (are ) 75 SB
-
-675 1966 38 (4 ) 39 SB
-
-714 1966 263 (Webchildren ) 264 SB
-
-978 1966 215 (connected ) 216 SB
-
-1194 1966 54 (to ) 55 SB
-
-1249 1966 74 (the ) 75 SB
-
-1324 1966 139 (HTTP ) 140 SB
-
-1464 1966 134 (server ) 135 SB
-
-1599 1966 102 (over ) 103 SB
-
-1702 1966 35 (a ) 36 SB
-
-1738 1966 203 (dedicated ) 204 SB
-
-1942 1966 114 (LAN ) 115 SB
-
-2057 1966 118 (\(LAN) 118 SB
-
-225 2025 68 (1\). ) 77 SB
-
-302 2025 13 ( ) 22 SB
-
-324 2025 90 (The ) 99 SB
-
-423 2025 307 (WebMASTER ) 316 SB
-
-739 2025 44 (is ) 53 SB
-
-792 2025 190 (executed ) 199 SB
-
-991 2025 63 (on ) 72 SB
-
-1063 2025 35 (a ) 44 SB
-
-1107 2025 177 (separate ) 186 SB
-
-1293 2025 148 (system ) 158 SB
-
-1451 2025 157 (outside ) 167 SB
-
-1618 2025 54 (of ) 64 SB
-
-1682 2025 74 (the ) 84 SB
-
-1766 2025 276 (Webchildren. ) 286 SB
-
-2052 2025 13 ( ) 23 SB
-
-2075 2025 13 ( ) 23 SB
-
-2098 2025 77 (The) 77 SB
-
-225 2084 307 (WebMASTER ) 317 SB
-
-542 2084 81 (can ) 91 SB
-
-633 2084 59 (be ) 69 SB
-
-702 2084 79 (run ) 89 SB
-
-791 2084 63 (on ) 73 SB
-
-864 2084 85 (one ) 95 SB
-
-959 2084 54 (of ) 64 SB
-
-1023 2084 74 (the ) 85 SB
-
-1108 2084 139 (clients ) 150 SB
-
-1258 2084 56 (or ) 67 SB
-
-1325 2084 63 (on ) 74 SB
-
-1399 2084 35 (a ) 46 SB
-
-1445 2084 177 (separate ) 188 SB
-
-1633 2084 189 (machine. ) 200 SB
-
-1833 2084 13 ( ) 24 SB
-
-1857 2084 90 (The ) 101 SB
-
-1958 2084 217 (benchmark) 217 SB
-
-225 2143 190 (currently ) 191 SB
-
-416 2143 44 (is ) 45 SB
-
-461 2143 226 (configured ) 227 SB
-
-688 2143 54 (to ) 55 SB
-
-743 2143 79 (run ) 80 SB
-
-823 2143 74 (the ) 75 SB
-
-898 2143 307 (WebMASTER ) 308 SB
-
-1206 2143 63 (on ) 64 SB
-
-1270 2143 35 (a ) 36 SB
-
-1306 2143 176 (machine ) 177 SB
-
-1483 2143 89 (that ) 90 SB
-
-1573 2143 44 (is ) 45 SB
-
-1618 2143 78 (not ) 80 SB
-
-1698 2143 63 (on ) 65 SB
-
-1763 2143 74 (the ) 76 SB
-
-1839 2143 113 (same ) 115 SB
-
-1954 2143 178 (network ) 180 SB
-
-2134 2143 41 (as) 41 SB
-
-225 2202 505 (the clients and the server.) 505 SB
-
-255 255 255 fC
-
-/fm 256 def
-
-150 60 1185 2533 B
-
-1 F
-
-n
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-gs 143 53 1189 2537 CB
-
-1189 2539 117 (LAN 1) 117 SB
-
-gr
-
-255 255 255 fC
-
-/fm 256 def
-
-150 60 705 2533 B
-
-1 F
-
-n
-
-0 0 0 fC
-
-gs 143 53 709 2537 CB
-
-709 2539 117 (LAN 2) 117 SB
-
-gr
-
-0 lc
-
-0 lj
-
-0 0 0 pC
-
-0 3 SP
-
-255 255 255 fC
-
-/fm 256 def
-
-240 420 1695 2383 B
-
-1 F
-
-S
-
-n
-
-0 0 0 fC
-
-gs 229 409 1701 2389 CB
-
-1763 2491 104 (HTTP) 104 SB
-
-gr
-
-gs 229 409 1701 2389 CB
-
-1761 2541 109 (Server) 109 SB
-
-gr
-
-255 255 255 fC
-
-/fm 256 def
-
-210 90 1245 2413 B
-
-1 F
-
-S
-
-n
-
-32 0 0 33 33 0 0 0 29 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-gs 199 79 1251 2419 CB
-
-1251 2420 166 (Webchildren) 166 SB
-
-gr
-
-255 255 255 fC
-
-/fm 256 def
-
-210 90 975 2413 B
-
-1 F
-
-S
-
-n
-
-0 0 0 fC
-
-gs 199 79 981 2419 CB
-
-981 2420 166 (Webchildren) 166 SB
-
-gr
-
-255 255 255 fC
-
-/fm 256 def
-
-210 90 1245 2683 B
-
-1 F
-
-S
-
-n
-
-0 0 0 fC
-
-gs 199 79 1251 2689 CB
-
-1251 2690 166 (Webchildren) 166 SB
-
-gr
-
-255 255 255 fC
-
-/fm 256 def
-
-210 90 975 2683 B
-
-1 F
-
-S
-
-n
-
-0 0 0 fC
-
-gs 199 79 981 2689 CB
-
-981 2690 166 (Webchildren) 166 SB
-
-gr
-
-255 255 255 fC
-
-/fm 256 def
-
-210 240 465 2473 B
-
-1 F
-
-S
-
-n
-
-0 0 0 fC
-
-gs 199 229 471 2479 CB
-
-473 2580 194 (WebMASTER) 194 SB
-
-gr
-
-1 lc
-
-1 lj
-
-1065 2503 M 0 180 1 PP
-
-S
-
-n
-
-1365 2503 M 0 180 1 PP
-
-S
-
-n
-
-1065 2593 M 630 0 1 PP
-
-S
-
-n
-
-885 2593 M 0 -240 1 PP
-
-S
-
-n
-
-885 2593 M 0 240 1 PP
-
-S
-
-n
-
-1065 2353 M 0 60 1 PP
-
-S
-
-n
-
-1335 2353 M 0 60 1 PP
-
-S
-
-n
-
-1365 2833 M 0 -60 1 PP
-
-S
-
-n
-
-1065 2833 M 0 -60 1 PP
-
-S
-
-n
-
-675 2593 M 210 0 1 PP
-
-S
-
-n
-
-885 2833 M 480 0 1 PP
-
-S
-
-n
-
-885 2353 M 450 0 1 PP
-
-S
-
-n
-
-255 255 255 fC
-
-/fm 256 def
-
-1050 90 435 2903 B
-
-1 F
-
-n
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-0 0 0 fC
-
-gs 1043 83 439 2907 CB
-
-439 2909 1021 (Figure 3 A WebSTONE test environment) 1021 SB
-
-gr
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 8 8
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (8) 21 SB
-
-gr
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 307 110 (With ) 116 SB
-
-491 307 74 (the ) 80 SB
-
-571 307 133 (ability ) 139 SB
-
-710 307 54 (to ) 60 SB
-
-770 307 105 (have ) 111 SB
-
-881 307 74 (the ) 80 SB
-
-961 307 307 (WebMASTER ) 313 SB
-
-1274 307 63 (on ) 70 SB
-
-1344 307 35 (a ) 42 SB
-
-1386 307 180 (different ) 187 SB
-
-1573 307 148 (system ) 155 SB
-
-1728 307 115 (gives ) 122 SB
-
-1850 307 74 (the ) 81 SB
-
-1931 307 196 (flexibility ) 203 SB
-
-2134 307 41 (to) 41 SB
-
-225 366 1845 (have different networks talking to the same server and to have different client configurations.) 1845 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 485 95 (3.1) 95 SB
-
-375 485 709 (WebSTONE Software) 709 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 660 90 (The ) 110 SB
-
-485 660 267 (WebSTONE ) 287 SB
-
-772 660 44 (is ) 64 SB
-
-836 660 35 (a ) 55 SB
-
-891 660 237 (distributed, ) 257 SB
-
-1148 660 281 (multi-process ) 302 SB
-
-1450 660 243 (benchmark. ) 264 SB
-
-1714 660 13 ( ) 34 SB
-
-1748 660 90 (The ) 111 SB
-
-1859 660 145 (master ) 166 SB
-
-2025 660 150 (process) 150 SB
-
-225 719 341 (\(WebMASTER\) ) 360 SB
-
-585 719 118 (reads ) 137 SB
-
-722 719 74 (the ) 93 SB
-
-815 719 120 (client ) 140 SB
-
-955 719 278 (configuration ) 298 SB
-
-1253 719 93 (files ) 113 SB
-
-1366 719 54 (as ) 74 SB
-
-1440 719 95 (well ) 115 SB
-
-1555 719 54 (as ) 74 SB
-
-1629 719 74 (the ) 94 SB
-
-1723 719 206 (command ) 226 SB
-
-1949 719 96 (line. ) 116 SB
-
-2065 719 13 ( ) 33 SB
-
-2098 719 77 (The) 77 SB
-
-225 778 307 (WebMASTER ) 311 SB
-
-536 778 98 (then ) 103 SB
-
-639 778 217 (constructs ) 222 SB
-
-861 778 35 (a ) 40 SB
-
-901 778 206 (command ) 211 SB
-
-1112 778 83 (line ) 88 SB
-
-1200 778 71 (for ) 76 SB
-
-1276 778 103 (each ) 108 SB
-
-1384 778 276 (Webchildren. ) 281 SB
-
-1665 778 13 ( ) 18 SB
-
-1683 778 90 (The ) 95 SB
-
-1778 778 307 (WebMASTER ) 312 SB
-
-2090 778 85 (then) 85 SB
-
-225 837 187 (remotely ) 193 SB
-
-418 837 158 (spawns ) 164 SB
-
-582 837 74 (the ) 80 SB
-
-662 837 276 (Webchildren. ) 282 SB
-
-944 837 13 ( ) 19 SB
-
-963 837 112 (Each ) 118 SB
-
-1081 837 54 (of ) 60 SB
-
-1141 837 74 (the ) 80 SB
-
-1221 837 263 (Webchildren ) 269 SB
-
-1490 837 98 (then ) 105 SB
-
-1595 837 118 (reads ) 125 SB
-
-1720 837 74 (the ) 81 SB
-
-1801 837 206 (command ) 213 SB
-
-2014 837 83 (line ) 90 SB
-
-2104 837 71 (and) 71 SB
-
-225 896 151 (startup ) 156 SB
-
-381 896 317 (communication ) 322 SB
-
-703 896 100 (with ) 105 SB
-
-808 896 74 (the ) 79 SB
-
-887 896 320 (WebMASTER. ) 325 SB
-
-1212 896 13 ( ) 18 SB
-
-1230 896 117 (After ) 122 SB
-
-1352 896 59 (all ) 64 SB
-
-1416 896 74 (the ) 79 SB
-
-1495 896 263 (Webchildren ) 268 SB
-
-1763 896 105 (have ) 111 SB
-
-1874 896 105 (been ) 111 SB
-
-1985 896 190 (initialized) 190 SB
-
-225 955 1482 (the WebMASTER instructs the Webchildren to commence the benchmark.) 1482 SB
-
-375 1073 67 (As ) 69 SB
-
-444 1073 103 (each ) 105 SB
-
-549 1073 263 (Webchildren ) 265 SB
-
-814 1073 160 (finishes ) 163 SB
-
-977 1073 59 (its ) 62 SB
-
-1039 1073 79 (run ) 82 SB
-
-1121 1073 74 (the ) 77 SB
-
-1198 1073 307 (WebMASTER ) 310 SB
-
-1508 1073 163 (collects ) 166 SB
-
-1674 1073 74 (the ) 77 SB
-
-1751 1073 97 (data ) 100 SB
-
-1851 1073 108 (from ) 111 SB
-
-1962 1073 103 (each ) 106 SB
-
-2068 1073 107 (client) 107 SB
-
-225 1132 84 (and ) 89 SB
-
-314 1132 199 (coalesces ) 204 SB
-
-518 1132 74 (the ) 79 SB
-
-597 1132 97 (data ) 102 SB
-
-699 1132 90 (into ) 96 SB
-
-795 1132 35 (a ) 41 SB
-
-836 1132 148 (report. ) 154 SB
-
-990 1132 13 ( ) 19 SB
-
-1009 1132 152 (During ) 158 SB
-
-1167 1132 74 (the ) 80 SB
-
-1247 1132 79 (run ) 85 SB
-
-1332 1132 74 (the ) 80 SB
-
-1412 1132 263 (Webchildren ) 269 SB
-
-1681 1132 74 (are ) 80 SB
-
-1761 1132 258 (autonomous ) 264 SB
-
-2025 1132 54 (of ) 60 SB
-
-2085 1132 90 (each) 90 SB
-
-225 1191 582 (other and the WebMASTER.) 582 SB
-
-375 1309 141 (Figure ) 142 SB
-
-517 1309 76 (3.1 ) 77 SB
-
-594 1309 137 (shows ) 139 SB
-
-733 1309 59 (an ) 61 SB
-
-794 1309 177 (example ) 179 SB
-
-973 1309 54 (of ) 56 SB
-
-1029 1309 35 (a ) 37 SB
-
-1066 1309 144 (typical ) 146 SB
-
-1212 1309 120 (client ) 122 SB
-
-1334 1309 164 (running ) 166 SB
-
-1500 1309 38 (3 ) 40 SB
-
-1540 1309 276 (Webchildren. ) 278 SB
-
-1818 1309 13 ( ) 15 SB
-
-1833 1309 90 (The ) 92 SB
-
-1925 1309 250 (Webchildren) 250 SB
-
-225 1368 74 (are ) 78 SB
-
-303 1368 186 (spawned ) 190 SB
-
-493 1368 60 (by ) 64 SB
-
-557 1368 74 (the ) 78 SB
-
-635 1368 320 (WebMASTER. ) 324 SB
-
-959 1368 13 ( ) 18 SB
-
-977 1368 112 (Each ) 117 SB
-
-1094 1368 200 (Webchild ) 205 SB
-
-1299 1368 98 (then ) 103 SB
-
-1402 1368 118 (reads ) 123 SB
-
-1525 1368 59 (its ) 64 SB
-
-1589 1368 278 (configuration ) 283 SB
-
-1872 1368 93 (files ) 98 SB
-
-1970 1368 84 (and ) 89 SB
-
-2059 1368 116 (opens) 116 SB
-
-225 1427 513 (log files if part of the test.) 513 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 241 121 1515 1683 CB
-
-1515 1685 104 (HTTP) 104 SB
-
-gr
-
-gs 241 121 1515 1683 CB
-
-1515 1735 109 (Server) 109 SB
-
-gr
-
-1 lc
-
-1 lj
-
-0 0 0 pC
-
-0 1 SP
-
-gs 151 1 675 1683 CB
-
-825 1683 M -150 0 1 PP
-
-S
-
-n
-
-gr
-
-gs 1 301 1215 1653 CB
-
-1215 1653 M 0 300 1 PP
-
-S
-
-n
-
-gr
-
-gs 1 541 675 1683 CB
-
-675 1683 M 0 540 1 PP
-
-S
-
-n
-
-gr
-
-255 255 255 fC
-
-/fm 256 def
-
-210 60 855 1653 B
-
-1 F
-
-n
-
-32 0 0 33 33 0 0 0 29 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-gs 211 61 855 1653 CB
-
-855 1654 166 (Webchildren) 166 SB
-
-gr
-
-120 45 944 1667 E
-
-S
-
-n
-
-255 255 255 fC
-
-/fm 256 def
-
-210 60 855 1773 B
-
-1 F
-
-n
-
-0 0 0 fC
-
-gs 211 61 855 1773 CB
-
-855 1774 166 (Webchildren) 166 SB
-
-gr
-
-120 45 944 1787 E
-
-S
-
-n
-
-255 255 255 fC
-
-/fm 256 def
-
-210 60 855 1923 B
-
-1 F
-
-n
-
-0 0 0 fC
-
-gs 211 61 855 1923 CB
-
-855 1924 166 (Webchildren) 166 SB
-
-gr
-
-120 45 944 1937 E
-
-S
-
-n
-
-0 lc
-
-0 lj
-
-0 3 SP
-
-930 750 555 1593 B
-
-S
-
-n
-
-255 255 255 fC
-
-/fm 256 def
-
-90 120 915 2133 B
-
-1 F
-
-n
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-gs 83 113 919 2137 CB
-
-919 2139 66 (Log) 66 SB
-
-gr
-
-gs 83 113 919 2137 CB
-
-919 2189 71 (files) 71 SB
-
-gr
-
-1 lc
-
-1 lj
-
-255 255 255 fC
-
-/fm 256 def
-
-45 30 959 2102 E
-
-1 F
-
-S
-
-n
-
-1005 2103 M 0 180 1 PP
-
-S
-
-n
-
-915 2103 M 0 180 1 PP
-
-S
-
-n
-
-/fm 256 def
-
-45 30 959 2282 E
-
-1 F
-
-S
-
-n
-
-814 1653 M -368 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-0 0 0 fC
-
-/fm 256 def
-
-450 1663 M 15 10 -15 10 0 -20 3 PP
-
-1 F
-
-S
-
-n
-
-/fm 256 def
-
-810 1643 M -15 -10 15 -10 0 20 3 PP
-
-1 F
-
-S
-
-n
-
-0 3 SP
-
-814 1773 M -368 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-450 1783 M 15 10 -15 9 0 -19 3 PP
-
-1 F
-
-S
-
-n
-
-/fm 256 def
-
-810 1764 M -15 -9 15 -10 0 19 3 PP
-
-1 F
-
-S
-
-n
-
-0 3 SP
-
-814 1923 M -368 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-450 1933 M 15 10 -15 10 0 -20 3 PP
-
-1 F
-
-S
-
-n
-
-/fm 256 def
-
-810 1913 M -15 -10 15 -10 0 20 3 PP
-
-1 F
-
-S
-
-n
-
-32 0 0 38 38 0 0 0 34 /Times-Roman /font32 ANSIFont font
-
-gs 241 61 315 1593 CB
-
-315 1595 233 ( WebMASTER) 233 SB
-
-gr
-
-gs 241 61 315 1711 CB
-
-315 1713 233 ( WebMASTER) 233 SB
-
-gr
-
-gs 241 61 315 1863 CB
-
-315 1865 233 ( WebMASTER) 233 SB
-
-gr
-
-0 3 SP
-
-1076 1653 M 128 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-1200 1643 M -15 -10 15 -10 0 20 3 PP
-
-1 F
-
-S
-
-n
-
-/fm 256 def
-
-1080 1663 M 15 10 -15 10 0 -20 3 PP
-
-1 F
-
-S
-
-n
-
-0 3 SP
-
-1076 1803 M 128 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-1200 1794 M -15 -9 15 -10 0 19 3 PP
-
-1 F
-
-S
-
-n
-
-/fm 256 def
-
-1080 1813 M 15 10 -15 9 0 -19 3 PP
-
-1 F
-
-S
-
-n
-
-0 3 SP
-
-1076 1953 M 128 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-1200 1943 M -15 -10 15 -10 0 20 3 PP
-
-1 F
-
-S
-
-n
-
-/fm 256 def
-
-1080 1963 M 15 10 -15 10 0 -20 3 PP
-
-1 F
-
-S
-
-n
-
-0 3 SP
-
-1226 1803 M 428 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-1650 1794 M -15 -9 15 -10 0 19 3 PP
-
-1 F
-
-S
-
-n
-
-/fm 256 def
-
-1230 1813 M 15 10 -15 9 0 -19 3 PP
-
-1 F
-
-S
-
-n
-
-gs 151 1 675 1803 CB
-
-825 1803 M -150 0 1 PP
-
-S
-
-n
-
-gr
-
-gs 151 1 675 1953 CB
-
-825 1953 M -150 0 1 PP
-
-S
-
-n
-
-gr
-
-0 3 SP
-
-675 2223 M 229 0 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-900 2213 M -15 -10 15 -10 0 20 3 PP
-
-1 F
-
-S
-
-n
-
-255 255 255 fC
-
-/fm 256 def
-
-120 120 1155 2133 B
-
-1 F
-
-n
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-gs 113 113 1159 2137 CB
-
-1159 2139 106 (config) 106 SB
-
-gr
-
-gs 113 113 1159 2137 CB
-
-1159 2189 71 (files) 71 SB
-
-gr
-
-0 3 SP
-
-255 255 255 fC
-
-/fm 256 def
-
-60 30 1214 2102 E
-
-1 F
-
-S
-
-n
-
-1275 2103 M 0 180 1 PP
-
-S
-
-n
-
-1155 2103 M 0 180 1 PP
-
-S
-
-n
-
-/fm 256 def
-
-60 30 1214 2282 E
-
-1 F
-
-S
-
-n
-
-1215 2073 M -146 -380 1 PP
-
-S
-
-n
-
-0 1 SP
-
-0 0 0 fC
-
-/fm 256 def
-
-1061 1701 M -4 18 -14 -10 18 -8 3 PP
-
-1 F
-
-S
-
-n
-
-0 3 SP
-
-1185 2073 M -144 -230 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-1034 1851 M -1 18 -16 -8 17 -10 3 PP
-
-1 F
-
-S
-
-n
-
-0 3 SP
-
-1155 2103 M -112 -112 1 PP
-
-S
-
-n
-
-0 1 SP
-
-/fm 256 def
-
-1038 2000 M 3 17 -17 -4 14 -13 3 PP
-
-1 F
-
-S
-
-n
-
-32 0 0 58 58 0 0 0 54 /Times-Bold /font29 ANSIFont font
-
-gs 691 91 645 2373 CB
-
-645 2375 587 (Figure 3.1 Webchildren) 587 SB
-
-gr
-
-gs 691 91 645 2373 CB
-
-645 2444 134 (client) 134 SB
-
-gr
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 9 9
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 21 50 2154 2899 CB
-
-2154 2901 21 (9) 21 SB
-
-gr
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 170 912 (4. Configuration Parameters) 912 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 326 1800 (Since the WebSTONE can has many variables this gives the flexibility to configure and run) 1800 SB
-
-225 385 119 (many ) 123 SB
-
-348 385 180 (different ) 184 SB
-
-532 385 138 (suites. ) 142 SB
-
-674 385 13 ( ) 17 SB
-
-691 385 90 (The ) 94 SB
-
-785 385 182 (standard ) 186 SB
-
-971 385 86 (mix ) 90 SB
-
-1061 385 54 (of ) 58 SB
-
-1119 385 93 (files ) 97 SB
-
-1216 385 85 (will ) 89 SB
-
-1305 385 96 (give ) 100 SB
-
-1405 385 35 (a ) 40 SB
-
-1445 385 157 (general ) 162 SB
-
-1607 385 262 (performance ) 267 SB
-
-1874 385 201 (indicator. ) 206 SB
-
-2080 385 13 ( ) 18 SB
-
-2098 385 77 (The) 77 SB
-
-225 444 979 (parameters that are configurable are listed below:) 979 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 639 23 (\267) 24 SB
-
-250 639 13 ( ) 51 SB
-
-225 639 23 (\267) 24 SB
-
-249 639 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 643 336 (Duration of test) 336 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 700 23 (\267) 24 SB
-
-250 700 13 ( ) 51 SB
-
-225 700 23 (\267) 24 SB
-
-249 700 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 704 365 (Repetition of test) 365 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 761 23 (\267) 24 SB
-
-250 761 13 ( ) 51 SB
-
-225 761 23 (\267) 24 SB
-
-249 761 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 765 327 (Number of files) 327 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 822 23 (\267) 24 SB
-
-250 822 13 ( ) 51 SB
-
-225 822 23 (\267) 24 SB
-
-249 822 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 826 362 (Number of pages) 362 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 883 23 (\267) 24 SB
-
-250 883 13 ( ) 51 SB
-
-225 883 23 (\267) 24 SB
-
-249 883 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 887 947 (Server software and hardware configuration) 947 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 944 23 (\267) 24 SB
-
-250 944 13 ( ) 51 SB
-
-225 944 23 (\267) 24 SB
-
-249 944 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 948 519 (Number of Webchildren) 519 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 1005 23 (\267) 24 SB
-
-250 1005 13 ( ) 51 SB
-
-225 1005 23 (\267) 24 SB
-
-249 1005 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 1009 438 (Number of networks) 438 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 1066 23 (\267) 24 SB
-
-250 1066 13 ( ) 51 SB
-
-225 1066 23 (\267) 24 SB
-
-249 1066 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 1070 378 (Number of clients) 378 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 1127 23 (\267) 24 SB
-
-250 1127 13 ( ) 51 SB
-
-225 1127 23 (\267) 24 SB
-
-249 1127 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 1131 400 (Workload of pages) 400 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 1188 23 (\267) 24 SB
-
-250 1188 13 ( ) 51 SB
-
-225 1188 23 (\267) 24 SB
-
-249 1188 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 1192 175 (Logging) 175 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-226 1249 23 (\267) 24 SB
-
-250 1249 13 ( ) 51 SB
-
-225 1249 23 (\267) 24 SB
-
-249 1249 13 ( ) 51 SB
-
-32 0 0 50 50 0 0 0 46 /Times-Bold /font29 ANSIFont font
-
-300 1253 231 (Debugging) 231 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1382 615 (4.1 Duration of test) 615 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1557 1219 (The WebSTONE is designed to run for a specified duration. ) 1220 SB
-
-1595 1557 48 (A ) 49 SB
-
-1644 1557 120 (given ) 121 SB
-
-1765 1557 84 (test ) 85 SB
-
-1850 1557 44 (is ) 45 SB
-
-1895 1557 79 (run ) 80 SB
-
-1975 1557 49 (in ) 50 SB
-
-2025 1557 108 (units ) 109 SB
-
-2134 1557 41 (of) 41 SB
-
-225 1616 180 (minutes. ) 189 SB
-
-414 1616 90 (The ) 99 SB
-
-513 1616 207 (maximum ) 216 SB
-
-729 1616 164 (running ) 173 SB
-
-902 1616 99 (time ) 108 SB
-
-1010 1616 44 (is ) 53 SB
-
-1063 1616 217 (dependent ) 226 SB
-
-1289 1616 63 (on ) 72 SB
-
-1361 1616 104 (your ) 113 SB
-
-1474 1616 120 (client ) 129 SB
-
-1603 1616 175 (memory ) 184 SB
-
-1787 1616 84 (and ) 93 SB
-
-1880 1616 74 (the ) 83 SB
-
-1963 1616 162 (number ) 171 SB
-
-2134 1616 41 (of) 41 SB
-
-225 1675 515 (Webchildren to be spawn.) 515 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1794 576 (4.2 Repetition test) 576 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1969 90 (The ) 91 SB
-
-466 1969 267 (WebSTONE ) 268 SB
-
-734 1969 78 (has ) 80 SB
-
-814 1969 74 (the ) 76 SB
-
-890 1969 133 (ability ) 135 SB
-
-1025 1969 54 (to ) 56 SB
-
-1081 1969 79 (run ) 81 SB
-
-1162 1969 71 (for ) 73 SB
-
-1235 1969 35 (a ) 37 SB
-
-1272 1969 162 (number ) 164 SB
-
-1436 1969 54 (of ) 56 SB
-
-1492 1969 210 (iterations. ) 212 SB
-
-1704 1969 13 ( ) 15 SB
-
-1719 1969 99 (This ) 101 SB
-
-1820 1969 44 (is ) 46 SB
-
-1866 1969 181 (basically ) 183 SB
-
-2049 1969 35 (a ) 37 SB
-
-2086 1969 89 (loop) 89 SB
-
-225 2028 177 (counter. ) 178 SB
-
-403 2028 13 ( ) 14 SB
-
-417 2028 83 (For ) 84 SB
-
-501 2028 191 (example: ) 192 SB
-
-693 2028 13 ( ) 14 SB
-
-707 2028 45 (If ) 46 SB
-
-753 2028 74 (the ) 75 SB
-
-828 2028 84 (test ) 85 SB
-
-913 2028 169 (consists ) 170 SB
-
-1083 2028 54 (of ) 55 SB
-
-1138 2028 35 (a ) 36 SB
-
-1174 2028 69 (set ) 71 SB
-
-1245 2028 54 (of ) 56 SB
-
-1301 2028 38 (4 ) 40 SB
-
-1341 2028 93 (files ) 95 SB
-
-1436 2028 84 (and ) 86 SB
-
-1522 2028 74 (the ) 76 SB
-
-1598 2028 84 (test ) 86 SB
-
-1684 2028 54 (to ) 56 SB
-
-1740 2028 59 (be ) 61 SB
-
-1801 2028 79 (run ) 81 SB
-
-1882 2028 90 (was ) 92 SB
-
-1974 2028 54 (to ) 56 SB
-
-2030 2028 145 (request) 145 SB
-
-225 2087 103 (each ) 105 SB
-
-330 2087 74 (file ) 76 SB
-
-406 2087 38 (1 ) 40 SB
-
-446 2087 99 (time ) 101 SB
-
-547 2087 84 (and ) 86 SB
-
-633 2087 98 (then ) 100 SB
-
-733 2087 135 (report ) 137 SB
-
-870 2087 106 (back ) 108 SB
-
-978 2087 74 (the ) 76 SB
-
-1054 2087 128 (status ) 131 SB
-
-1185 2087 54 (of ) 57 SB
-
-1242 2087 89 (that ) 92 SB
-
-1334 2087 79 (run ) 82 SB
-
-1416 2087 74 (the ) 77 SB
-
-1493 2087 230 (benchmark ) 233 SB
-
-1726 2087 137 (would ) 140 SB
-
-1866 2087 98 (then ) 101 SB
-
-1967 2087 164 (attempt ) 167 SB
-
-2134 2087 41 (to) 41 SB
-
-225 2146 1427 (retrieve each file one time and then generate a report based on this data.) 1427 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2265 605 (4.3 Number of files) 605 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2440 1019 (There are two different ways to read files or UIL\222s ) 1020 SB
-
-1395 2440 90 (into ) 91 SB
-
-1486 2440 74 (the ) 75 SB
-
-1561 2440 243 (benchmark. ) 244 SB
-
-1805 2440 13 ( ) 14 SB
-
-1819 2440 90 (The ) 91 SB
-
-1910 2440 265 (configuration) 265 SB
-
-225 2499 712 (file \223filelist\224 contains a list of pages ) 713 SB
-
-938 2499 84 (and ) 85 SB
-
-1023 2499 93 (files ) 94 SB
-
-1117 2499 89 (that ) 90 SB
-
-1207 2499 74 (are ) 75 SB
-
-1282 2499 156 (already ) 157 SB
-
-1439 2499 303 (preconfigured. ) 304 SB
-
-1743 2499 13 ( ) 14 SB
-
-1757 2499 129 (There ) 130 SB
-
-1887 2499 44 (is ) 45 SB
-
-1932 2499 35 (a ) 36 SB
-
-1968 2499 101 (limit ) 102 SB
-
-2070 2499 54 (of ) 55 SB
-
-2125 2499 50 (50) 50 SB
-
-225 2558 1240 (files per page in the current implementation of this benchmark.) 1240 SB
-
-375 2676 90 (The ) 91 SB
-
-466 2676 117 (other ) 118 SB
-
-584 2676 94 (way ) 95 SB
-
-679 2676 54 (to ) 55 SB
-
-734 2676 99 (read ) 100 SB
-
-834 2676 93 (files ) 94 SB
-
-928 2676 90 (into ) 91 SB
-
-1019 2676 74 (the ) 75 SB
-
-1094 2676 79 (run ) 80 SB
-
-1174 2676 44 (is ) 45 SB
-
-1219 2676 50 (at ) 51 SB
-
-1270 2676 74 (the ) 75 SB
-
-1345 2676 206 (command ) 207 SB
-
-1552 2676 96 (line. ) 97 SB
-
-1649 2676 13 ( ) 14 SB
-
-1663 2676 90 (The ) 91 SB
-
-1754 2676 96 (user ) 97 SB
-
-1851 2676 95 (may ) 96 SB
-
-1947 2676 71 (list ) 72 SB
-
-2019 2676 74 (the ) 76 SB
-
-2095 2676 80 (files) 80 SB
-
-225 2735 54 (to ) 59 SB
-
-284 2735 59 (be ) 64 SB
-
-348 2735 131 (tested ) 136 SB
-
-484 2735 63 (on ) 68 SB
-
-552 2735 74 (the ) 79 SB
-
-631 2735 206 (command ) 211 SB
-
-842 2735 96 (line. ) 102 SB
-
-944 2735 13 ( ) 19 SB
-
-963 2735 99 (This ) 105 SB
-
-1068 2735 44 (is ) 50 SB
-
-1118 2735 148 (limited ) 154 SB
-
-1272 2735 60 (by ) 66 SB
-
-1338 2735 74 (the ) 80 SB
-
-1418 2735 162 (number ) 168 SB
-
-1586 2735 54 (of ) 60 SB
-
-1646 2735 219 (arguments ) 225 SB
-
-1871 2735 168 (allowed ) 174 SB
-
-2045 2735 63 (on ) 69 SB
-
-2114 2735 61 (the) 61 SB
-
-225 2794 289 (command line.) 289 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Symbol
-
-%%+ font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 10 10
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (10) 42 SB
-
-gr
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 239 654 (4.4 Number of pages) 654 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 414 261 (At this point ) 262 SB
-
-637 414 74 (the ) 75 SB
-
-712 414 169 (concept ) 170 SB
-
-882 414 54 (of ) 55 SB
-
-937 414 35 (a ) 36 SB
-
-973 414 107 (page ) 108 SB
-
-1081 414 125 (needs ) 126 SB
-
-1207 414 54 (to ) 55 SB
-
-1262 414 59 (be ) 60 SB
-
-1322 414 239 (introduced. ) 240 SB
-
-1562 414 13 ( ) 14 SB
-
-1576 414 121 (Since ) 122 SB
-
-1698 414 74 (the ) 75 SB
-
-1773 414 169 (concept ) 170 SB
-
-1943 414 54 (of ) 55 SB
-
-1998 414 35 (a ) 36 SB
-
-2034 414 141 (HTML) 141 SB
-
-225 473 209 (document ) 214 SB
-
-439 473 44 (is ) 49 SB
-
-488 473 85 (one ) 90 SB
-
-578 473 89 (that ) 94 SB
-
-672 473 78 (has ) 83 SB
-
-755 473 89 (text ) 94 SB
-
-849 473 100 (with ) 105 SB
-
-954 473 119 (inline ) 124 SB
-
-1078 473 150 (images ) 155 SB
-
-1233 473 84 (like ) 89 SB
-
-1322 473 93 (GIF ) 98 SB
-
-1420 473 84 (and ) 89 SB
-
-1509 473 127 (JPEG ) 132 SB
-
-1641 473 49 (in ) 54 SB
-
-1695 473 53 (it, ) 58 SB
-
-1753 473 113 (there ) 118 SB
-
-1871 473 44 (is ) 49 SB
-
-1920 473 35 (a ) 40 SB
-
-1960 473 215 (conceptual) 215 SB
-
-225 532 107 (view ) 108 SB
-
-333 532 89 (that ) 90 SB
-
-423 532 35 (a ) 36 SB
-
-459 532 107 (page ) 108 SB
-
-567 532 44 (is ) 45 SB
-
-612 532 74 (the ) 75 SB
-
-687 532 154 (HTML ) 155 SB
-
-842 532 89 (text ) 90 SB
-
-932 532 94 (plus ) 95 SB
-
-1027 532 59 (all ) 61 SB
-
-1088 532 74 (the ) 76 SB
-
-1164 532 93 (GIF ) 95 SB
-
-1259 532 84 (and ) 86 SB
-
-1345 532 127 (JPEG ) 129 SB
-
-1474 532 93 (files ) 95 SB
-
-1569 532 89 (that ) 91 SB
-
-1660 532 74 (are ) 76 SB
-
-1736 532 217 (associated ) 219 SB
-
-1955 532 100 (with ) 102 SB
-
-2057 532 40 (it ) 42 SB
-
-2099 532 76 (that) 76 SB
-
-225 591 119 (make ) 120 SB
-
-345 591 54 (to ) 55 SB
-
-400 591 133 (whole ) 134 SB
-
-534 591 222 (document. ) 223 SB
-
-757 591 13 ( ) 14 SB
-
-771 591 99 (This ) 100 SB
-
-871 591 196 (approach ) 197 SB
-
-1068 591 90 (was ) 91 SB
-
-1159 591 121 (taken ) 122 SB
-
-1281 591 54 (to ) 55 SB
-
-1336 591 133 (mimic ) 134 SB
-
-1470 591 54 (as ) 55 SB
-
-1525 591 149 (closely ) 150 SB
-
-1675 591 54 (to ) 55 SB
-
-1730 591 35 (a ) 36 SB
-
-1766 591 86 (real ) 87 SB
-
-1853 591 74 (life ) 75 SB
-
-1928 591 247 (environment) 247 SB
-
-225 650 126 (usage ) 128 SB
-
-353 650 148 (patters ) 150 SB
-
-503 650 134 (where ) 137 SB
-
-640 650 93 (GIF ) 96 SB
-
-736 650 84 (and ) 87 SB
-
-823 650 127 (JPEG ) 130 SB
-
-953 650 144 (inlined ) 147 SB
-
-1100 650 150 (images ) 153 SB
-
-1253 650 74 (are ) 77 SB
-
-1330 650 278 (automatically ) 281 SB
-
-1611 650 124 (down ) 127 SB
-
-1738 650 98 (load ) 101 SB
-
-1839 650 113 (upon ) 116 SB
-
-1955 650 176 (retrieval ) 179 SB
-
-2134 650 41 (of) 41 SB
-
-225 709 74 (the ) 78 SB
-
-303 709 154 (HTML ) 158 SB
-
-461 709 89 (text ) 93 SB
-
-554 709 120 (page. ) 125 SB
-
-679 709 13 ( ) 18 SB
-
-697 709 209 (Therefore ) 214 SB
-
-911 709 108 (from ) 113 SB
-
-1024 709 83 (this ) 88 SB
-
-1112 709 115 (point ) 120 SB
-
-1232 709 63 (on ) 68 SB
-
-1300 709 35 (a ) 40 SB
-
-1340 709 107 (page ) 112 SB
-
-1452 709 85 (will ) 90 SB
-
-1542 709 59 (be ) 64 SB
-
-1606 709 227 (considered ) 232 SB
-
-1838 709 74 (the ) 79 SB
-
-1917 709 69 (set ) 74 SB
-
-1991 709 54 (of ) 59 SB
-
-2050 709 93 (files ) 98 SB
-
-2148 709 27 (it) 27 SB
-
-225 768 116 (takes ) 117 SB
-
-342 768 54 (to ) 55 SB
-
-397 768 133 (create ) 134 SB
-
-531 768 59 (an ) 60 SB
-
-591 768 154 (HTML ) 155 SB
-
-746 768 187 (viewable ) 188 SB
-
-934 768 222 (document. ) 223 SB
-
-1157 768 13 ( ) 14 SB
-
-1171 768 126 (Note: ) 127 SB
-
-1298 768 13 ( ) 14 SB
-
-1312 768 168 (Though ) 169 SB
-
-1481 768 49 (in ) 50 SB
-
-1531 768 86 (real ) 87 SB
-
-1618 768 74 (life ) 76 SB
-
-1694 768 59 (an ) 61 SB
-
-1755 768 249 (applications ) 251 SB
-
-2006 768 169 (program) 169 SB
-
-225 827 137 (would ) 142 SB
-
-367 827 74 (lite ) 79 SB
-
-446 827 69 (off ) 74 SB
-
-520 827 59 (all ) 64 SB
-
-584 827 74 (the ) 79 SB
-
-663 827 158 (request ) 163 SB
-
-826 827 71 (for ) 76 SB
-
-902 827 74 (the ) 79 SB
-
-981 827 93 (files ) 98 SB
-
-1079 827 50 (at ) 55 SB
-
-1134 827 85 (one ) 90 SB
-
-1224 827 112 (time, ) 117 SB
-
-1341 827 40 (it ) 45 SB
-
-1386 827 90 (was ) 95 SB
-
-1481 827 166 (decided ) 171 SB
-
-1652 827 89 (that ) 94 SB
-
-1746 827 83 (this ) 88 SB
-
-1834 827 90 (was ) 95 SB
-
-1929 827 78 (not ) 84 SB
-
-2013 827 59 (an ) 65 SB
-
-2078 827 97 (issue) 97 SB
-
-225 886 112 (since ) 129 SB
-
-354 886 173 (multiple ) 190 SB
-
-544 886 171 (children ) 188 SB
-
-732 886 79 (run ) 96 SB
-
-828 886 63 (on ) 80 SB
-
-908 886 103 (each ) 120 SB
-
-1028 886 120 (client ) 138 SB
-
-1166 886 84 (and ) 102 SB
-
-1268 886 89 (that ) 107 SB
-
-1375 886 74 (the ) 92 SB
-
-1467 886 183 (acquired ) 201 SB
-
-1668 886 124 (affect ) 142 SB
-
-1810 886 54 (of ) 72 SB
-
-1882 886 293 (simultaneously) 293 SB
-
-225 945 609 (connections is stilled achieved.) 609 SB
-
-375 1092 90 (The ) 91 SB
-
-466 1092 267 (WebSTONE ) 268 SB
-
-734 1092 44 (is ) 45 SB
-
-779 1092 187 (designed ) 188 SB
-
-967 1092 54 (to ) 55 SB
-
-1022 1092 79 (use ) 80 SB
-
-1102 1092 74 (the ) 75 SB
-
-1177 1092 169 (concept ) 170 SB
-
-1347 1092 54 (of ) 55 SB
-
-1402 1092 126 (pages ) 127 SB
-
-1529 1092 141 (during ) 142 SB
-
-1671 1092 158 (testing. ) 159 SB
-
-1830 1092 90 (The ) 91 SB
-
-1921 1092 254 (WebSTONE) 254 SB
-
-225 1151 1104 (is able to handle up to 100 pages with 50 files per page.) 1104 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1270 1837 (4.5 All of the server software and hardware configuration) 1837 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1445 168 (Though ) 186 SB
-
-561 1445 74 (the ) 92 SB
-
-653 1445 267 (WebSTONE ) 285 SB
-
-938 1445 44 (is ) 62 SB
-
-1000 1445 140 (design ) 158 SB
-
-1158 1445 54 (to ) 72 SB
-
-1230 1445 84 (test ) 102 SB
-
-1332 1445 180 (different ) 198 SB
-
-1530 1445 134 (server ) 153 SB
-
-1683 1445 185 (software ) 204 SB
-
-1887 1445 84 (and ) 103 SB
-
-1990 1445 185 (hardware) 185 SB
-
-225 1504 297 (configurations ) 300 SB
-
-525 1504 74 (the ) 77 SB
-
-602 1504 230 (benchmark ) 233 SB
-
-835 1504 49 (in ) 52 SB
-
-887 1504 108 (itself ) 111 SB
-
-998 1504 105 (does ) 108 SB
-
-1106 1504 78 (not ) 81 SB
-
-1187 1504 252 (discriminate ) 255 SB
-
-1442 1504 54 (as ) 57 SB
-
-1499 1504 54 (to ) 57 SB
-
-1556 1504 291 (configuration. ) 294 SB
-
-1850 1504 13 ( ) 17 SB
-
-1867 1504 99 (This ) 103 SB
-
-1970 1504 140 (allows ) 144 SB
-
-2114 1504 61 (the) 61 SB
-
-225 1563 123 (tester ) 134 SB
-
-359 1563 54 (to ) 65 SB
-
-424 1563 68 (try ) 80 SB
-
-504 1563 180 (different ) 192 SB
-
-696 1563 297 (configurations ) 309 SB
-
-1005 1563 49 (in ) 61 SB
-
-1066 1563 120 (order ) 132 SB
-
-1198 1563 54 (to ) 66 SB
-
-1264 1563 161 (achieve ) 173 SB
-
-1437 1563 162 (optimal ) 174 SB
-
-1611 1563 262 (performance ) 274 SB
-
-1885 1563 71 (for ) 83 SB
-
-1968 1563 74 (the ) 86 SB
-
-2054 1563 121 (server) 121 SB
-
-225 1622 185 (software ) 189 SB
-
-414 1622 84 (and ) 88 SB
-
-502 1622 211 (hardware. ) 215 SB
-
-717 1622 13 ( ) 17 SB
-
-734 1622 161 (NOTE: ) 165 SB
-
-899 1622 54 (In ) 58 SB
-
-957 1622 163 (fairness ) 167 SB
-
-1124 1622 74 (the ) 78 SB
-
-1202 1622 103 (tests ) 107 SB
-
-1309 1622 144 (should ) 148 SB
-
-1457 1622 59 (be ) 63 SB
-
-1520 1622 79 (run ) 83 SB
-
-1603 1622 100 (with ) 104 SB
-
-1707 1622 74 (the ) 78 SB
-
-1785 1622 113 (same ) 117 SB
-
-1902 1622 198 (hardware ) 202 SB
-
-2104 1622 71 (and) 71 SB
-
-225 1681 544 (software as reported in the ) 545 SB
-
-770 1681 84 (test ) 85 SB
-
-855 1681 155 (results. ) 156 SB
-
-1011 1681 13 ( ) 14 SB
-
-1025 1681 72 (All ) 73 SB
-
-1098 1681 198 (hardware ) 199 SB
-
-1297 1681 84 (and ) 85 SB
-
-1382 1681 117 (sever ) 118 SB
-
-1500 1681 185 (software ) 186 SB
-
-1686 1681 297 (configurations ) 298 SB
-
-1984 1681 144 (should ) 145 SB
-
-2129 1681 46 (be) 46 SB
-
-225 1740 651 (disclosed when a test is released.) 651 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1869 1018 (4.6 The number of Webchildren) 1018 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2044 296 (On each client ) 297 SB
-
-672 2044 97 (host ) 98 SB
-
-770 2044 74 (the ) 75 SB
-
-845 2044 162 (number ) 163 SB
-
-1008 2044 54 (of ) 55 SB
-
-1063 2044 263 (Webchildren ) 264 SB
-
-1327 2044 219 (requesting ) 220 SB
-
-1547 2044 126 (pages ) 127 SB
-
-1674 2044 56 (or ) 57 SB
-
-1731 2044 93 (files ) 94 SB
-
-1825 2044 108 (from ) 109 SB
-
-1934 2044 74 (the ) 75 SB
-
-2009 2044 134 (server ) 135 SB
-
-2144 2044 31 (is) 31 SB
-
-225 2103 272 (configurable. ) 276 SB
-
-501 2103 13 ( ) 17 SB
-
-518 2103 112 (Note ) 116 SB
-
-634 2103 89 (that ) 93 SB
-
-727 2103 54 (as ) 59 SB
-
-786 2103 74 (the ) 79 SB
-
-865 2103 162 (number ) 167 SB
-
-1032 2103 54 (of ) 59 SB
-
-1091 2103 263 (Webchildren ) 268 SB
-
-1359 2103 173 (increase ) 178 SB
-
-1537 2103 85 (less ) 90 SB
-
-1627 2103 175 (memory ) 180 SB
-
-1807 2103 44 (is ) 49 SB
-
-1856 2103 185 (available ) 190 SB
-
-2046 2103 63 (on ) 68 SB
-
-2114 2103 61 (the) 61 SB
-
-225 2162 120 (client ) 121 SB
-
-346 2162 116 (hosts ) 117 SB
-
-463 2162 71 (for ) 72 SB
-
-535 2162 164 (running ) 165 SB
-
-700 2162 103 (tests ) 104 SB
-
-804 2162 84 (and ) 85 SB
-
-889 2162 113 (there ) 114 SB
-
-1003 2162 123 (could ) 124 SB
-
-1127 2162 59 (be ) 60 SB
-
-1187 2162 35 (a ) 37 SB
-
-1224 2162 262 (performance ) 264 SB
-
-1488 2162 156 (penalty ) 158 SB
-
-1646 2162 217 (depending ) 219 SB
-
-1865 2162 63 (on ) 65 SB
-
-1930 2162 74 (the ) 76 SB
-
-2006 2162 126 (speed ) 128 SB
-
-2134 2162 41 (of) 41 SB
-
-225 2221 731 (the clients running on the client host.) 731 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2369 770 (4.7 Number of networks) 770 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2544 45 (It ) 48 SB
-
-423 2544 44 (is ) 47 SB
-
-470 2544 172 (possible ) 175 SB
-
-645 2544 54 (to ) 57 SB
-
-702 2544 105 (have ) 108 SB
-
-810 2544 115 (more ) 118 SB
-
-928 2544 98 (then ) 102 SB
-
-1030 2544 85 (one ) 89 SB
-
-1119 2544 178 (network ) 182 SB
-
-1301 2544 215 (connected ) 219 SB
-
-1520 2544 54 (to ) 58 SB
-
-1578 2544 74 (the ) 78 SB
-
-1656 2544 134 (server ) 138 SB
-
-1794 2544 84 (and ) 88 SB
-
-1882 2544 54 (to ) 58 SB
-
-1940 2544 105 (have ) 109 SB
-
-2049 2544 126 (clients) 126 SB
-
-225 2603 63 (on ) 68 SB
-
-293 2603 180 (different ) 185 SB
-
-478 2603 197 (networks ) 202 SB
-
-680 2603 164 (running ) 169 SB
-
-849 2603 74 (the ) 79 SB
-
-928 2603 243 (benchmark. ) 248 SB
-
-1176 2603 13 ( ) 18 SB
-
-1194 2603 168 (Though ) 173 SB
-
-1367 2603 83 (this ) 88 SB
-
-1455 2603 90 (was ) 95 SB
-
-1550 2603 78 (not ) 83 SB
-
-1633 2603 110 (done ) 115 SB
-
-1748 2603 49 (in ) 54 SB
-
-1802 2603 83 (this ) 89 SB
-
-1891 2603 157 (version ) 163 SB
-
-2054 2603 54 (of ) 60 SB
-
-2114 2603 61 (the) 61 SB
-
-225 2662 1491 (benchmark there should be no reason that it would not work provided that ) 1492 SB
-
-1717 2662 74 (the ) 75 SB
-
-1792 2662 134 (server ) 135 SB
-
-1927 2662 97 (host ) 98 SB
-
-2025 2662 118 (name ) 119 SB
-
-2144 2662 31 (is) 31 SB
-
-225 2721 522 (the same on all the clients.) 522 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 11 11
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (11) 42 SB
-
-gr
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 170 679 (4.8 Number of clients) 679 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 345 90 (The ) 94 SB
-
-469 345 267 (WebSTONE ) 271 SB
-
-740 345 184 (supports ) 188 SB
-
-928 345 74 (the ) 78 SB
-
-1006 345 133 (ability ) 137 SB
-
-1143 345 54 (to ) 58 SB
-
-1201 345 105 (have ) 109 SB
-
-1310 345 54 (as ) 59 SB
-
-1369 345 119 (many ) 124 SB
-
-1493 345 171 (children ) 176 SB
-
-1669 345 63 (on ) 68 SB
-
-1737 345 103 (each ) 108 SB
-
-1845 345 120 (client ) 125 SB
-
-1970 345 54 (as ) 59 SB
-
-2029 345 100 (long ) 105 SB
-
-2134 345 41 (as) 41 SB
-
-225 404 113 (there ) 119 SB
-
-344 404 44 (is ) 51 SB
-
-395 404 159 (enough ) 166 SB
-
-561 404 175 (memory ) 182 SB
-
-743 404 63 (on ) 70 SB
-
-813 404 102 (both ) 109 SB
-
-922 404 74 (the ) 81 SB
-
-1003 404 307 (WebMASTER ) 314 SB
-
-1317 404 84 (and ) 91 SB
-
-1408 404 120 (client ) 127 SB
-
-1535 404 180 (systems. ) 187 SB
-
-1722 404 13 ( ) 20 SB
-
-1742 404 112 (Note ) 119 SB
-
-1861 404 113 (there ) 120 SB
-
-1981 404 141 (maybe ) 148 SB
-
-2129 404 46 (an) 46 SB
-
-225 463 802 (issue of performance bottlenecks on the ) 803 SB
-
-1028 463 120 (client ) 121 SB
-
-1149 463 91 (side ) 92 SB
-
-1241 463 40 (if ) 41 SB
-
-1282 463 113 (there ) 114 SB
-
-1396 463 74 (are ) 75 SB
-
-1471 463 80 (too ) 81 SB
-
-1552 463 119 (many ) 120 SB
-
-1672 463 263 (Webchildren ) 264 SB
-
-1936 463 56 (or ) 57 SB
-
-1993 463 74 (the ) 75 SB
-
-2068 463 107 (client) 107 SB
-
-225 522 150 (is slow.) 150 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 651 712 (4.9 Workload of pages) 712 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 738 112 (Each ) 114 SB
-
-489 738 107 (page ) 109 SB
-
-598 738 49 (in ) 52 SB
-
-650 738 74 (the ) 77 SB
-
-727 738 267 (WebSTONE ) 270 SB
-
-997 738 78 (has ) 81 SB
-
-1078 738 35 (a ) 38 SB
-
-1116 738 147 (weight ) 150 SB
-
-1266 738 217 (associated ) 220 SB
-
-1486 738 100 (with ) 103 SB
-
-1589 738 53 (it. ) 56 SB
-
-1645 738 13 ( ) 16 SB
-
-1661 738 48 (A ) 51 SB
-
-1712 738 107 (page ) 110 SB
-
-1822 738 95 (may ) 98 SB
-
-1920 738 59 (be ) 62 SB
-
-1982 738 108 (from ) 111 SB
-
-2093 738 38 (1 ) 41 SB
-
-2134 738 41 (to) 41 SB
-
-225 797 130 (100% ) 133 SB
-
-358 797 54 (of ) 57 SB
-
-415 797 74 (the ) 77 SB
-
-492 797 97 (test. ) 100 SB
-
-592 797 13 ( ) 16 SB
-
-608 797 85 (See ) 88 SB
-
-696 797 74 (the ) 77 SB
-
-773 797 132 (filelist ) 135 SB
-
-908 797 71 (for ) 74 SB
-
-982 797 148 (further ) 151 SB
-
-1133 797 243 (information ) 246 SB
-
-1379 797 63 (on ) 66 SB
-
-1445 797 291 (configuration. ) 294 SB
-
-1739 797 13 ( ) 17 SB
-
-1756 797 218 (Weighting ) 222 SB
-
-1978 797 44 (is ) 48 SB
-
-2026 797 104 (used ) 108 SB
-
-2134 797 41 (to) 41 SB
-
-225 856 177 (simulate ) 180 SB
-
-405 856 89 (that ) 92 SB
-
-497 856 158 (activity ) 161 SB
-
-658 856 54 (of ) 57 SB
-
-715 856 35 (a ) 38 SB
-
-753 856 120 (given ) 123 SB
-
-876 856 120 (page. ) 123 SB
-
-999 856 13 ( ) 16 SB
-
-1015 856 90 (The ) 93 SB
-
-1108 856 137 (higher ) 140 SB
-
-1248 856 74 (the ) 77 SB
-
-1325 856 229 (percentage ) 233 SB
-
-1558 856 74 (the ) 78 SB
-
-1636 856 115 (more ) 119 SB
-
-1755 856 115 (often ) 119 SB
-
-1874 856 74 (the ) 78 SB
-
-1952 856 107 (page ) 111 SB
-
-2063 856 44 (is ) 48 SB
-
-2111 856 64 (hit.) 64 SB
-
-225 915 1182 (The lower the percentage the less often the page will be hit.) 1182 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1113 415 (4.10 Logging) 415 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1288 180 (Logging ) 189 SB
-
-564 1288 44 (is ) 54 SB
-
-618 1288 132 (added ) 142 SB
-
-760 1288 54 (to ) 64 SB
-
-824 1288 74 (the ) 84 SB
-
-908 1288 243 (benchmark, ) 253 SB
-
-1161 1288 77 (but ) 87 SB
-
-1248 1288 159 (caution ) 169 SB
-
-1417 1288 144 (should ) 154 SB
-
-1571 1288 59 (be ) 69 SB
-
-1640 1288 198 (exercised ) 208 SB
-
-1848 1288 119 (when ) 129 SB
-
-1977 1288 118 (using ) 128 SB
-
-2105 1288 70 (this) 70 SB
-
-225 1347 141 (option ) 151 SB
-
-376 1347 54 (as ) 64 SB
-
-440 1347 103 (each ) 113 SB
-
-553 1347 263 (Webchildren ) 273 SB
-
-826 1347 95 (logs ) 105 SB
-
-931 1347 121 (every ) 131 SB
-
-1062 1347 230 (connection ) 240 SB
-
-1302 1347 84 (and ) 94 SB
-
-1396 1347 171 (relevant ) 181 SB
-
-1577 1347 97 (data ) 107 SB
-
-1684 1347 49 (in ) 59 SB
-
-1743 1347 35 (a ) 45 SB
-
-1788 1347 177 (separate ) 188 SB
-
-1976 1347 87 (file. ) 98 SB
-
-2074 1347 13 ( ) 24 SB
-
-2098 1347 77 (The) 77 SB
-
-225 1406 1859 (logging information contains additional information that is not returned to the WebMASTER.) 1859 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1585 497 (4.11 Debugging) 497 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1760 231 (Debugging ) 235 SB
-
-610 1760 44 (is ) 48 SB
-
-658 1760 132 (added ) 136 SB
-
-794 1760 54 (to ) 58 SB
-
-852 1760 96 (help ) 100 SB
-
-952 1760 206 (debugged ) 210 SB
-
-1162 1760 40 (if ) 44 SB
-
-1206 1760 113 (there ) 118 SB
-
-1324 1760 44 (is ) 49 SB
-
-1373 1760 35 (a ) 40 SB
-
-1413 1760 176 (problem ) 181 SB
-
-1594 1760 100 (with ) 105 SB
-
-1699 1760 74 (the ) 79 SB
-
-1778 1760 134 (server ) 139 SB
-
-1917 1760 56 (or ) 61 SB
-
-1978 1760 133 (client. ) 138 SB
-
-2116 1760 13 ( ) 18 SB
-
-2134 1760 41 (In) 41 SB
-
-225 1819 1454 (debugging mode the HTTP header is display for each request that is sent.) 1454 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1938 864 (5. Workload configuration) 864 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2113 95 (One ) 100 SB
-
-475 2113 54 (of ) 59 SB
-
-534 2113 74 (the ) 79 SB
-
-613 2113 117 (goals ) 122 SB
-
-735 2113 71 (for ) 76 SB
-
-811 2113 74 (the ) 79 SB
-
-890 2113 267 (WebSTONE ) 272 SB
-
-1162 2113 44 (is ) 49 SB
-
-1211 2113 54 (to ) 59 SB
-
-1270 2113 135 (model ) 140 SB
-
-1410 2113 35 (a ) 40 SB
-
-1450 2113 86 (real ) 91 SB
-
-1541 2113 129 (world ) 134 SB
-
-1675 2113 202 (workload ) 207 SB
-
-1882 2113 71 (via ) 76 SB
-
-1958 2113 35 (a ) 41 SB
-
-1999 2113 176 (synthetic) 176 SB
-
-225 2172 1678 (workloads based on data gathered from different sites \(Hotwired, IUMA, Netscape, ) 1679 SB
-
-1904 2172 84 (and ) 85 SB
-
-1989 2172 54 (of ) 55 SB
-
-2044 2172 131 (course) 131 SB
-
-225 2231 553 (SGI\). Unfortunately this is ) 554 SB
-
-779 2231 115 (small ) 116 SB
-
-895 2231 97 (data ) 98 SB
-
-993 2231 69 (set ) 70 SB
-
-1063 2231 54 (to ) 55 SB
-
-1118 2231 87 (pull ) 88 SB
-
-1206 2231 108 (from ) 109 SB
-
-1315 2231 90 (but, ) 91 SB
-
-1406 2231 40 (it ) 41 SB
-
-1447 2231 78 (has ) 79 SB
-
-1526 2231 105 (been ) 106 SB
-
-1632 2231 128 (found ) 129 SB
-
-1761 2231 89 (that ) 90 SB
-
-1851 2231 40 (it ) 41 SB
-
-1892 2231 105 (does ) 106 SB
-
-1998 2231 177 (currently) 177 SB
-
-225 2290 215 (represents ) 217 SB
-
-442 2290 74 (the ) 76 SB
-
-518 2290 157 (general ) 159 SB
-
-677 2290 79 (use ) 81 SB
-
-758 2290 54 (of ) 56 SB
-
-814 2290 152 (HTTP. ) 154 SB
-
-968 2290 13 ( ) 15 SB
-
-983 2290 54 (In ) 56 SB
-
-1039 2290 83 (this ) 85 SB
-
-1124 2290 230 (benchmark ) 232 SB
-
-1356 2290 113 (there ) 116 SB
-
-1472 2290 74 (are ) 77 SB
-
-1549 2290 38 (4 ) 41 SB
-
-1590 2290 180 (different ) 183 SB
-
-1773 2290 127 (mixes ) 130 SB
-
-1903 2290 108 (from ) 111 SB
-
-2014 2290 74 (the ) 77 SB
-
-2091 2290 84 (data) 84 SB
-
-225 2349 478 (gather from those sites.) 478 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2468 759 (5.1 General modem mix) 759 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2643 772 (The General modem mix is a synthetic ) 773 SB
-
-1148 2643 107 (page ) 108 SB
-
-1256 2643 86 (mix ) 87 SB
-
-1343 2643 89 (that ) 90 SB
-
-1433 2643 137 (would ) 138 SB
-
-1571 2643 59 (be ) 60 SB
-
-1631 2643 104 (used ) 105 SB
-
-1736 2643 40 (if ) 41 SB
-
-1777 2643 160 (modem ) 161 SB
-
-1938 2643 115 (users ) 116 SB
-
-2054 2643 121 (where) 121 SB
-
-225 2702 1596 (to be considered. Two concerns to a potential server site should be the size of ) 1597 SB
-
-1822 2702 74 (the ) 75 SB
-
-1897 2702 126 (pages ) 127 SB
-
-2024 2702 89 (that ) 90 SB
-
-2114 2702 61 (are) 61 SB
-
-225 2761 63 (on ) 69 SB
-
-294 2761 103 (their ) 110 SB
-
-404 2761 148 (system ) 155 SB
-
-559 2761 84 (and ) 91 SB
-
-650 2761 98 (type ) 105 SB
-
-755 2761 54 (of ) 61 SB
-
-816 2761 139 (access ) 146 SB
-
-962 2761 54 (to ) 61 SB
-
-1023 2761 74 (the ) 81 SB
-
-1104 2761 147 (server. ) 154 SB
-
-1258 2761 13 ( ) 20 SB
-
-1278 2761 45 (If ) 52 SB
-
-1330 2761 35 (a ) 42 SB
-
-1372 2761 84 (end ) 91 SB
-
-1463 2761 96 (user ) 103 SB
-
-1566 2761 44 (is ) 51 SB
-
-1617 2761 200 (accessing ) 207 SB
-
-1824 2761 74 (the ) 81 SB
-
-1905 2761 134 (server ) 141 SB
-
-2046 2761 100 (with ) 107 SB
-
-2153 2761 22 (a) 22 SB
-
-225 2820 169 (14.4kbs ) 170 SB
-
-395 2820 160 (modem ) 161 SB
-
-556 2820 98 (then ) 99 SB
-
-655 2820 40 (it ) 41 SB
-
-696 2820 137 (would ) 138 SB
-
-834 2820 59 (be ) 60 SB
-
-894 2820 49 (in ) 50 SB
-
-944 2820 74 (the ) 76 SB
-
-1020 2820 93 (best ) 95 SB
-
-1115 2820 159 (interest ) 161 SB
-
-1276 2820 54 (of ) 56 SB
-
-1332 2820 74 (the ) 76 SB
-
-1408 2820 81 (site ) 83 SB
-
-1491 2820 54 (to ) 56 SB
-
-1547 2820 105 (have ) 107 SB
-
-1654 2820 115 (small ) 117 SB
-
-1771 2820 126 (pages ) 128 SB
-
-1899 2820 54 (as ) 56 SB
-
-1955 2820 54 (to ) 56 SB
-
-2011 2820 78 (not ) 80 SB
-
-2091 2820 84 (take) 84 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 12 12
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (12) 42 SB
-
-gr
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-225 169 35 (a ) 37 SB
-
-262 169 100 (long ) 103 SB
-
-365 169 99 (time ) 102 SB
-
-467 169 54 (to ) 57 SB
-
-524 169 209 (download ) 212 SB
-
-736 169 74 (the ) 77 SB
-
-813 169 110 (data. ) 113 SB
-
-926 169 13 ( ) 16 SB
-
-942 169 99 (This ) 102 SB
-
-1044 169 86 (mix ) 89 SB
-
-1133 169 116 (takes ) 119 SB
-
-1252 169 74 (the ) 77 SB
-
-1329 169 84 (end ) 87 SB
-
-1416 169 96 (user ) 99 SB
-
-1515 169 89 (that ) 92 SB
-
-1607 169 78 (has ) 81 SB
-
-1688 169 54 (to ) 57 SB
-
-1745 169 79 (use ) 82 SB
-
-1827 169 35 (a ) 38 SB
-
-1865 169 160 (modem ) 163 SB
-
-2028 169 54 (as ) 57 SB
-
-2085 169 90 (their) 90 SB
-
-225 228 230 (connection ) 235 SB
-
-460 228 90 (into ) 95 SB
-
-555 228 182 (account. ) 187 SB
-
-742 228 13 ( ) 19 SB
-
-761 228 99 (This ) 105 SB
-
-866 228 86 (mix ) 92 SB
-
-958 228 85 (will ) 91 SB
-
-1049 228 150 (consist ) 156 SB
-
-1205 228 54 (of ) 60 SB
-
-1265 228 115 (small ) 121 SB
-
-1386 228 126 (pages ) 132 SB
-
-1518 228 89 (that ) 95 SB
-
-1613 228 74 (are ) 80 SB
-
-1693 228 85 (less ) 91 SB
-
-1784 228 98 (then ) 104 SB
-
-1888 228 88 (20k ) 94 SB
-
-1982 228 116 (bytes ) 122 SB
-
-2104 228 71 (and) 71 SB
-
-225 287 741 (mainly text with sparse graphics files.) 741 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 435 509 (5.2 General mix) 509 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 581 90 (The ) 101 SB
-
-476 581 168 (General ) 179 SB
-
-655 581 86 (mix ) 97 SB
-
-752 581 44 (is ) 55 SB
-
-807 581 85 (one ) 96 SB
-
-903 581 89 (that ) 100 SB
-
-1003 581 44 (is ) 55 SB
-
-1058 581 78 (not ) 90 SB
-
-1148 581 217 (concerned ) 229 SB
-
-1377 581 100 (with ) 112 SB
-
-1489 581 147 (modem) 147 SB
-
-1636 581 13 ( ) 25 SB
-
-1661 581 115 (users ) 127 SB
-
-1788 581 197 (however, ) 209 SB
-
-1997 581 40 (it ) 52 SB
-
-2049 581 44 (is ) 56 SB
-
-2105 581 70 (still) 70 SB
-
-225 640 960 (concerned with the network responsiveness and ) 961 SB
-
-1186 640 247 (throughput. ) 248 SB
-
-1434 640 13 ( ) 14 SB
-
-1448 640 86 (File ) 87 SB
-
-1535 640 107 (sizes ) 108 SB
-
-1643 640 49 (in ) 50 SB
-
-1693 640 83 (this ) 84 SB
-
-1777 640 86 (mix ) 87 SB
-
-1864 640 85 (will ) 86 SB
-
-1950 640 59 (be ) 60 SB
-
-2010 640 165 (between) 165 SB
-
-225 699 351 (1 and 100k bytes.) 351 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 847 604 (5.3 Media rich mix) 604 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1022 138 (Media ) 141 SB
-
-516 1022 88 (rich ) 91 SB
-
-607 1022 44 (is ) 47 SB
-
-654 1022 158 (defined ) 161 SB
-
-815 1022 60 (by ) 63 SB
-
-878 1022 74 (the ) 77 SB
-
-955 1022 98 (type ) 101 SB
-
-1056 1022 84 (and ) 88 SB
-
-1144 1022 88 (size ) 92 SB
-
-1236 1022 54 (of ) 58 SB
-
-1294 1022 97 (data ) 101 SB
-
-1395 1022 150 (stored. ) 154 SB
-
-1549 1022 13 ( ) 17 SB
-
-1566 1022 138 (Media ) 142 SB
-
-1708 1022 169 (referees ) 173 SB
-
-1881 1022 54 (to ) 58 SB
-
-1939 1022 236 (multi-media) 236 SB
-
-225 1081 161 (content ) 164 SB
-
-389 1081 103 (such ) 106 SB
-
-495 1081 68 (as: ) 71 SB
-
-566 1081 13 ( ) 16 SB
-
-582 1081 152 (MPEG ) 155 SB
-
-737 1081 84 (and ) 87 SB
-
-824 1081 219 (Quicktime ) 222 SB
-
-1046 1081 134 (movie ) 137 SB
-
-1183 1081 106 (files, ) 110 SB
-
-1293 1081 152 (MPEG ) 156 SB
-
-1449 1081 84 (and ) 88 SB
-
-1537 1081 77 (aiff ) 81 SB
-
-1618 1081 111 (..etc. ) 115 SB
-
-1733 1081 132 (sound ) 136 SB
-
-1869 1081 116 (clips, ) 120 SB
-
-1989 1081 84 (and ) 88 SB
-
-2077 1081 98 (large) 98 SB
-
-225 1140 179 (graphics ) 183 SB
-
-408 1140 106 (files. ) 111 SB
-
-519 1140 13 ( ) 18 SB
-
-537 1140 138 (Media ) 143 SB
-
-680 1140 88 (rich ) 93 SB
-
-773 1140 161 (content ) 166 SB
-
-939 1140 100 (sites ) 105 SB
-
-1044 1140 74 (are ) 79 SB
-
-1123 1140 78 (not ) 83 SB
-
-1206 1140 168 (worried ) 173 SB
-
-1379 1140 125 (about ) 130 SB
-
-1509 1140 74 (the ) 79 SB
-
-1588 1140 88 (size ) 93 SB
-
-1681 1140 54 (of ) 59 SB
-
-1740 1140 103 (their ) 108 SB
-
-1848 1140 106 (files. ) 111 SB
-
-1959 1140 131 (These ) 136 SB
-
-2095 1140 80 (files) 80 SB
-
-225 1199 151 (usually ) 155 SB
-
-380 1199 150 (consist ) 154 SB
-
-534 1199 54 (of ) 58 SB
-
-592 1199 134 (movie ) 138 SB
-
-730 1199 103 (clips ) 107 SB
-
-837 1199 84 (and ) 88 SB
-
-925 1199 132 (sound ) 136 SB
-
-1061 1199 106 (files. ) 110 SB
-
-1171 1199 13 ( ) 17 SB
-
-1188 1199 99 (This ) 104 SB
-
-1292 1199 86 (mix ) 91 SB
-
-1383 1199 44 (is ) 49 SB
-
-1432 1199 104 (used ) 109 SB
-
-1541 1199 54 (to ) 59 SB
-
-1600 1199 124 (cover ) 129 SB
-
-1729 1199 83 (this ) 88 SB
-
-1817 1199 119 (need. ) 124 SB
-
-1941 1199 13 ( ) 18 SB
-
-1959 1199 131 (These ) 136 SB
-
-2095 1199 80 (files) 80 SB
-
-225 1258 732 (range in size from 20k to megabytes.) 732 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1406 1005 (5.4 General and media rich mix) 1005 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1552 929 (To cover the combination of a site that wishes ) 930 SB
-
-1305 1552 54 (to ) 55 SB
-
-1360 1552 134 (server ) 135 SB
-
-1495 1552 102 (both ) 103 SB
-
-1598 1552 115 (small ) 116 SB
-
-1714 1552 161 (content ) 162 SB
-
-1876 1552 84 (and ) 85 SB
-
-1961 1552 138 (Media ) 139 SB
-
-2100 1552 75 (rich) 75 SB
-
-225 1611 1279 (content this mix was created. This mix will most suite this need.) 1279 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1759 619 (6. Load Generation) 619 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1934 90 (The ) 98 SB
-
-473 1934 155 (current ) 163 SB
-
-636 1934 98 (load ) 106 SB
-
-742 1934 222 (generation ) 230 SB
-
-972 1934 54 (of ) 62 SB
-
-1034 1934 74 (the ) 82 SB
-
-1116 1934 267 (WebSTONE ) 275 SB
-
-1391 1934 44 (is ) 52 SB
-
-1443 1934 54 (to ) 62 SB
-
-1505 1934 158 (request ) 166 SB
-
-1671 1934 126 (pages ) 134 SB
-
-1805 1934 84 (and ) 92 SB
-
-1897 1934 93 (files ) 101 SB
-
-1998 1934 108 (from ) 116 SB
-
-2114 1934 61 (the) 61 SB
-
-225 1993 134 (server ) 142 SB
-
-367 1993 54 (as ) 62 SB
-
-429 1993 84 (fast ) 92 SB
-
-521 1993 54 (as ) 62 SB
-
-583 1993 74 (the ) 82 SB
-
-665 1993 134 (server ) 142 SB
-
-807 1993 81 (can ) 89 SB
-
-896 1993 103 (send ) 111 SB
-
-1007 1993 124 (them. ) 132 SB
-
-1139 1993 13 ( ) 21 SB
-
-1160 1993 215 (Reflecting ) 223 SB
-
-1383 1993 74 (the ) 82 SB
-
-1465 1993 155 (current ) 163 SB
-
-1628 1993 260 (environment ) 268 SB
-
-1896 1993 49 (in ) 58 SB
-
-1954 1993 74 (the ) 83 SB
-
-2037 1993 138 (WWW) 138 SB
-
-225 2052 1376 (community. To generate a load there are four things that are needed.) 1376 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 2109 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2114 48 (A ) 51 SB
-
-351 2114 162 (number ) 165 SB
-
-516 2114 54 (of ) 57 SB
-
-573 2114 276 (Webchildern. ) 279 SB
-
-852 2114 13 ( ) 16 SB
-
-868 2114 90 (The ) 93 SB
-
-961 2114 115 (more ) 118 SB
-
-1079 2114 263 (Webchildern ) 266 SB
-
-1345 2114 89 (that ) 92 SB
-
-1437 2114 74 (are ) 77 SB
-
-1514 2114 219 (requesting ) 222 SB
-
-1736 2114 126 (pages ) 129 SB
-
-1865 2114 108 (from ) 111 SB
-
-1976 2114 74 (the ) 78 SB
-
-2054 2114 121 (server) 121 SB
-
-300 2173 667 (the more load that this will cause.) 667 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 2230 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2235 1764 (The type of page. This is mainly determined by the page size and the weight of the page.) 1764 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 2292 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2297 174 (Number ) 175 SB
-
-475 2297 54 (of ) 55 SB
-
-530 2297 152 (clients. ) 153 SB
-
-683 2297 13 ( ) 14 SB
-
-697 2297 90 (The ) 91 SB
-
-788 2297 115 (more ) 116 SB
-
-904 2297 139 (clients ) 140 SB
-
-1044 2297 89 (that ) 90 SB
-
-1134 2297 74 (are ) 75 SB
-
-1209 2297 49 (in ) 50 SB
-
-1259 2297 74 (the ) 75 SB
-
-1334 2297 84 (test ) 85 SB
-
-1419 2297 74 (the ) 75 SB
-
-1494 2297 115 (more ) 116 SB
-
-1610 2297 263 (Webchildern ) 264 SB
-
-1874 2297 89 (that ) 90 SB
-
-1964 2297 74 (are ) 75 SB
-
-2039 2297 93 (able ) 95 SB
-
-2134 2297 41 (to) 41 SB
-
-300 2356 651 (be brought to bear on the server.) 651 SB
-
-32 0 0 50 50 0 0 0 50 /Symbol font
-
-225 2413 36 (\267 ) 75 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2418 1703 (The number of pages. The more pages that are requested test other aspects of server.) 1703 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2596 579 (6.1 Page selection) 579 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2771 1140 (Each page in the mix has a percentage associated with it. ) 1141 SB
-
-1516 2771 13 ( ) 14 SB
-
-1530 2771 99 (This ) 100 SB
-
-1630 2771 229 (percentage ) 230 SB
-
-1860 2771 44 (is ) 45 SB
-
-1905 2771 74 (the ) 75 SB
-
-1980 2771 195 (weighting) 195 SB
-
-225 2830 143 (factor. ) 151 SB
-
-376 2830 13 ( ) 21 SB
-
-397 2830 90 (The ) 98 SB
-
-495 2830 137 (higher ) 145 SB
-
-640 2830 74 (the ) 82 SB
-
-722 2830 162 (number ) 170 SB
-
-892 2830 74 (the ) 82 SB
-
-974 2830 115 (more ) 123 SB
-
-1097 2830 178 (frequent ) 186 SB
-
-1283 2830 74 (the ) 82 SB
-
-1365 2830 107 (page ) 115 SB
-
-1480 2830 85 (will ) 93 SB
-
-1573 2830 59 (be ) 67 SB
-
-1640 2830 77 (hit. ) 85 SB
-
-1725 2830 13 ( ) 21 SB
-
-1746 2830 48 (A ) 56 SB
-
-1802 2830 164 (random ) 172 SB
-
-1974 2830 162 (number ) 170 SB
-
-2144 2830 31 (is) 31 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Symbol
-
-%%+ font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 13 13
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (13) 42 SB
-
-gr
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-225 169 833 (generated and then compared to the page ) 834 SB
-
-1059 169 160 (weight. ) 161 SB
-
-1220 169 13 ( ) 14 SB
-
-1234 169 45 (If ) 46 SB
-
-1280 169 74 (the ) 75 SB
-
-1355 169 164 (random ) 165 SB
-
-1520 169 162 (number ) 163 SB
-
-1683 169 174 (matches ) 175 SB
-
-1858 169 74 (the ) 75 SB
-
-1933 169 107 (page ) 108 SB
-
-2041 169 134 (weight) 134 SB
-
-225 228 98 (then ) 100 SB
-
-325 228 89 (that ) 91 SB
-
-416 228 142 (pages\222 ) 144 SB
-
-560 228 93 (files ) 95 SB
-
-655 228 74 (are ) 76 SB
-
-731 228 189 (retrieved ) 192 SB
-
-923 228 85 (one ) 88 SB
-
-1011 228 50 (at ) 53 SB
-
-1064 228 35 (a ) 38 SB
-
-1102 228 112 (time. ) 115 SB
-
-1217 228 13 ( ) 16 SB
-
-1233 228 112 (Each ) 115 SB
-
-1348 228 263 (Webchildren ) 266 SB
-
-1614 228 78 (has ) 81 SB
-
-1695 228 59 (its ) 62 SB
-
-1757 228 99 (own ) 102 SB
-
-1859 228 164 (random ) 167 SB
-
-2026 228 149 (number) 149 SB
-
-225 287 194 (sequence.) 194 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 406 498 (6.2 Page Access) 498 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 581 117 (After ) 119 SB
-
-494 581 35 (a ) 38 SB
-
-532 581 107 (page ) 110 SB
-
-642 581 44 (is ) 47 SB
-
-689 581 172 (selected ) 175 SB
-
-864 581 60 (by ) 63 SB
-
-927 581 164 (random ) 167 SB
-
-1094 581 147 (weight ) 150 SB
-
-1244 581 98 (then ) 101 SB
-
-1345 581 103 (each ) 106 SB
-
-1451 581 200 (Webchild ) 203 SB
-
-1654 581 178 (contacts ) 181 SB
-
-1835 581 74 (the ) 77 SB
-
-1912 581 139 (HTTP ) 142 SB
-
-2054 581 121 (server) 121 SB
-
-225 640 84 (and ) 88 SB
-
-313 640 177 (requests ) 181 SB
-
-494 640 74 (the ) 78 SB
-
-572 640 91 (first ) 95 SB
-
-667 640 74 (file ) 78 SB
-
-745 640 54 (of ) 58 SB
-
-803 640 74 (the ) 78 SB
-
-881 640 120 (page. ) 124 SB
-
-1005 640 13 ( ) 17 SB
-
-1022 640 117 (After ) 121 SB
-
-1143 640 74 (the ) 78 SB
-
-1221 640 200 (Webchild ) 204 SB
-
-1425 640 173 (receives ) 177 SB
-
-1602 640 74 (the ) 78 SB
-
-1680 640 91 (first ) 95 SB
-
-1775 640 107 (page ) 112 SB
-
-1887 640 40 (it ) 45 SB
-
-1932 640 177 (requests ) 182 SB
-
-2114 640 61 (the) 61 SB
-
-225 699 98 (next ) 101 SB
-
-326 699 85 (one ) 89 SB
-
-415 699 101 (until ) 105 SB
-
-520 699 59 (all ) 63 SB
-
-583 699 74 (the ) 78 SB
-
-661 699 93 (files ) 97 SB
-
-758 699 71 (for ) 75 SB
-
-833 699 89 (that ) 93 SB
-
-926 699 107 (page ) 111 SB
-
-1037 699 105 (have ) 109 SB
-
-1146 699 105 (been ) 109 SB
-
-1255 699 218 (requested. ) 222 SB
-
-1477 699 13 ( ) 17 SB
-
-1494 699 73 (On ) 77 SB
-
-1571 699 103 (each ) 107 SB
-
-1678 699 107 (page ) 111 SB
-
-1789 699 74 (the ) 78 SB
-
-1867 699 99 (time ) 103 SB
-
-1970 699 40 (it ) 44 SB
-
-2014 699 116 (takes ) 120 SB
-
-2134 699 41 (to) 41 SB
-
-225 758 1465 (connect and down load the file is recorded and log if logging is turned on.) 1465 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 936 733 (6.3 Duration of the test) 733 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1111 90 (The ) 100 SB
-
-475 1111 267 (WebSTONE ) 277 SB
-
-752 1111 44 (is ) 54 SB
-
-806 1111 187 (designed ) 197 SB
-
-1003 1111 54 (to ) 64 SB
-
-1067 1111 79 (run ) 89 SB
-
-1156 1111 101 (until ) 112 SB
-
-1268 1111 74 (the ) 85 SB
-
-1353 1111 139 (clients ) 150 SB
-
-1503 1111 79 (run ) 90 SB
-
-1593 1111 79 (out ) 90 SB
-
-1683 1111 54 (of ) 65 SB
-
-1748 1111 175 (memory ) 186 SB
-
-1934 1111 56 (or ) 67 SB
-
-2001 1111 74 (the ) 85 SB
-
-2086 1111 89 (loop) 89 SB
-
-225 1170 164 (counter ) 165 SB
-
-390 1170 83 (hits ) 84 SB
-
-474 1170 151 (20000. ) 152 SB
-
-626 1170 13 ( ) 14 SB
-
-640 1170 90 (The ) 91 SB
-
-731 1170 102 (loop ) 103 SB
-
-834 1170 164 (counter ) 165 SB
-
-999 1170 44 (is ) 45 SB
-
-1044 1170 74 (the ) 75 SB
-
-1119 1170 133 (ability ) 134 SB
-
-1253 1170 54 (to ) 55 SB
-
-1308 1170 79 (run ) 80 SB
-
-1388 1170 35 (a ) 36 SB
-
-1424 1170 84 (test ) 85 SB
-
-1509 1170 49 (in ) 50 SB
-
-1559 1170 203 (repetition ) 204 SB
-
-1763 1170 54 (as ) 55 SB
-
-1818 1170 54 (to ) 56 SB
-
-1874 1170 112 (time. ) 114 SB
-
-1988 1170 13 ( ) 15 SB
-
-2003 1170 99 (This ) 101 SB
-
-2104 1170 71 (test) 71 SB
-
-225 1229 44 (is ) 45 SB
-
-270 1229 148 (limited ) 149 SB
-
-419 1229 169 (because ) 170 SB
-
-589 1229 54 (of ) 55 SB
-
-644 1229 13 ( ) 14 SB
-
-658 1229 120 (client ) 121 SB
-
-779 1229 188 (memory. ) 189 SB
-
-968 1229 13 ( ) 14 SB
-
-982 1229 45 (If ) 46 SB
-
-1028 1229 120 (client ) 121 SB
-
-1149 1229 175 (memory ) 176 SB
-
-1325 1229 44 (is ) 45 SB
-
-1370 1229 78 (not ) 79 SB
-
-1449 1229 59 (an ) 60 SB
-
-1509 1229 110 (issue ) 111 SB
-
-1620 1229 83 (this ) 84 SB
-
-1704 1229 162 (number ) 163 SB
-
-1867 1229 81 (can ) 83 SB
-
-1950 1229 59 (be ) 61 SB
-
-2011 1229 164 (changed) 164 SB
-
-225 1288 1483 (and the benchmark recompiled. Most tests do not last longer than 1 hour..) 1483 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1466 696 (7. Benchmark Results) 696 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1641 90 (The ) 91 SB
-
-466 1641 201 (following ) 202 SB
-
-668 1641 44 (is ) 45 SB
-
-713 1641 35 (a ) 36 SB
-
-749 1641 144 (typical ) 145 SB
-
-894 1641 79 (run ) 80 SB
-
-974 1641 54 (of ) 55 SB
-
-1029 1641 74 (the ) 75 SB
-
-1104 1641 243 (benchmark. ) 244 SB
-
-1348 1641 13 ( ) 14 SB
-
-1362 1641 90 (The ) 91 SB
-
-1453 1641 91 (first ) 92 SB
-
-1545 1641 79 (run ) 81 SB
-
-1626 1641 44 (is ) 46 SB
-
-1672 1641 54 (of ) 56 SB
-
-1728 1641 74 (the ) 76 SB
-
-1804 1641 230 (benchmark ) 232 SB
-
-2036 1641 139 (against) 139 SB
-
-225 1700 962 (the Netsite server followed by the NCSA server.) 962 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-225 1847 943 (The following parameters were modified to run the test:) 943 SB
-
-225 1897 204 (nm_clusters) 204 SB
-
-225 1947 279 (somaxconn = 50) 279 SB
-
-225 1997 334 (nm_clusters = 4000) 334 SB
-
-225 2047 371 (tcp_keepidle = \(1200\)) 371 SB
-
-225 2097 488 (tcp_keep_timer_in_close = 1) 488 SB
-
-225 2197 333 (Hardware platform:) 333 SB
-
-225 2297 459 (1 150 MHZ IP22 Processor) 459 SB
-
-225 2347 897 (FPU: MIPS R4010 Floating Point Chip Revision: 0.0) 897 SB
-
-225 2397 822 (CPU: MIPS R4400 Processor Chip Revision: 5.0) 822 SB
-
-225 2447 403 (On-board serial ports: 2) 403 SB
-
-225 2497 617 (On-board bi-directional parallel port) 617 SB
-
-225 2547 453 (Data cache size: 16 Kbytes) 453 SB
-
-225 2597 557 (Instruction cache size: 16 Kbytes) 557 SB
-
-225 2647 924 (Secondary unified instruction/data cache size: 1 Mbyte) 924 SB
-
-225 2697 534 (Main memory size: 256 Mbytes) 534 SB
-
-225 2747 934 (Integral ISDN: Basic Rate Interface unit 0, revision 1.0) 934 SB
-
-225 2797 1077 (XPI FDDI controller: xpi0, firmware version 9411032038, SAS) 1077 SB
-
-225 2847 546 (Integral Ethernet: ec3, version 1) 546 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 14 14
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (14) 42 SB
-
-gr
-
-225 169 546 (Integral Ethernet: ec0, version 1) 546 SB
-
-225 219 1215 (Integral SCSI controller 5: Version WD33C95A, differential, revision 0) 1215 SB
-
-225 269 657 (Disk drive: unit 4 on SCSI controller 5) 657 SB
-
-225 319 657 (Disk drive: unit 3 on SCSI controller 5) 657 SB
-
-225 369 657 (Disk drive: unit 2 on SCSI controller 5) 657 SB
-
-225 419 657 (Disk drive: unit 1 on SCSI controller 5) 657 SB
-
-225 469 1215 (Integral SCSI controller 4: Version WD33C95A, differential, revision 0) 1215 SB
-
-225 519 1012 (Integral SCSI controller 0: Version WD33C93B, revision D) 1012 SB
-
-225 569 657 (Disk drive: unit 5 on SCSI controller 0) 657 SB
-
-225 619 633 (CDROM: unit 4 on SCSI controller 0) 633 SB
-
-225 669 657 (Disk drive: unit 2 on SCSI controller 0) 657 SB
-
-225 769 1633 (The file set used for this test is listed below. In this case a general and media rich mix was used.) 1633 SB
-
-225 869 1097 (#This file is used to configure the pages and files to be tested for.) 1097 SB
-
-225 919 21 (6) 21 SB
-
-225 969 74 (40 3) 74 SB
-
-225 1019 199 (/file3k.html) 199 SB
-
-225 1069 199 (/file4k.html) 199 SB
-
-225 1119 199 (/file5k.html) 199 SB
-
-225 1169 53 (5 3) 53 SB
-
-225 1219 220 (/file10k.html) 220 SB
-
-225 1269 220 (/file17k.html) 220 SB
-
-225 1319 220 (/file20k.html) 220 SB
-
-225 1369 53 (5 2) 53 SB
-
-225 1419 211 (/file5m.html) 211 SB
-
-225 1469 211 (/file1m.html) 211 SB
-
-225 1519 74 (20 3) 74 SB
-
-225 1569 199 (/file6k.html) 199 SB
-
-225 1619 199 (/file7k.html) 199 SB
-
-225 1669 241 (/file200k.html) 241 SB
-
-225 1719 74 (20 2) 74 SB
-
-225 1769 211 (/file3m.html) 211 SB
-
-225 1819 220 (/file21k.html) 220 SB
-
-225 1869 74 (10 2) 74 SB
-
-225 1919 241 (/file500k.html) 241 SB
-
-225 1969 220 (/file13k.html) 220 SB
-
-225 2069 1890 (What follows is the results of a test ran for 10 minutes with the above page sets. The first set of data is from the) 1890 SB
-
-225 2119 242 (Netsite server.) 242 SB
-
-225 2219 182 (Netsite 1.0) 182 SB
-
-225 2269 1428 (********************************************************************) 1428 SB
-
-225 2319 1239 (/usr/local/bin/webstone -w xpi0-alfalfa -c sulu:2959 -u filelist -t 35 -n %d) 1239 SB
-
-225 2369 773 (Client: gateweb-indy8 Number of Clients: 6) 773 SB
-
-225 2419 773 (Client: gateweb-indy9 Number of Clients: 6) 773 SB
-
-225 2469 783 (Client: gateweb-indy10 Number of Clients: 6) 783 SB
-
-225 2519 783 (Client: gateweb-indy11 Number of Clients: 6) 783 SB
-
-225 2619 616 (Waiting for READY from 24 clients) 616 SB
-
-225 2669 375 (All READYs received) 375 SB
-
-225 2719 428 (Sending GO to all clients) 428 SB
-
-225 2769 793 (All clients started at Fri Mar 17 11:23:10 1995) 793 SB
-
-225 2819 516 (Waiting for clients completion) 516 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Page: 15 15
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (15) 42 SB
-
-gr
-
-225 169 780 (All clients ended at Fri Mar 17 11:58:34 1995) 780 SB
-
-225 219 145 (Page # 0) 145 SB
-
-225 269 1944 (=================================================================================) 1944 SB
-
-225 319 692 (Total number of times page was hit 6649) 692 SB
-
-225 369 560 (Total time 4238.492450 seconds) 560 SB
-
-225 419 611 (Maximum Response time 2.071999) 611 SB
-
-225 469 666 (Total connect time for page 77.660191) 666 SB
-
-225 519 615 (Maximum time to connect 0.052151) 615 SB
-
-225 569 655 (Total amount of data moved 81702912) 655 SB
-
-225 619 273 (Page size 12288) 273 SB
-
-225 669 546 (Total number of connects 19947) 546 SB
-
-225 719 1944 (=================================================================================) 1944 SB
-
-225 819 145 (Page # 1) 145 SB
-
-225 869 1944 (=================================================================================) 1944 SB
-
-225 919 671 (Total number of times page was hit 607) 671 SB
-
-225 969 539 (Total time 526.552497 seconds) 539 SB
-
-225 1019 611 (Maximum Response time 1.805497) 611 SB
-
-225 1069 645 (Total connect time for page 8.111734) 645 SB
-
-225 1119 615 (Maximum time to connect 0.036912) 615 SB
-
-225 1169 655 (Total amount of data moved 29213696) 655 SB
-
-225 1219 273 (Page size 48128) 273 SB
-
-225 1269 525 (Total number of connects 1821) 525 SB
-
-225 1319 1944 (=================================================================================) 1944 SB
-
-225 1419 145 (Page # 2) 145 SB
-
-225 1469 1944 (=================================================================================) 1944 SB
-
-225 1519 671 (Total number of times page was hit 980) 671 SB
-
-225 1569 581 (Total time 15710.908864 seconds) 581 SB
-
-225 1619 632 (Maximum Response time 22.764984) 632 SB
-
-225 1669 666 (Total connect time for page 19.605667) 666 SB
-
-225 1719 615 (Maximum time to connect 5.785718) 615 SB
-
-225 1769 697 (Total amount of data moved 6165626880) 697 SB
-
-225 1819 315 (Page size 6291456) 315 SB
-
-225 1869 525 (Total number of connects 1960) 525 SB
-
-225 1919 1944 (=================================================================================) 1944 SB
-
-225 2019 145 (Page # 3) 145 SB
-
-225 2069 1944 (=================================================================================) 1944 SB
-
-225 2119 692 (Total number of times page was hit 2866) 692 SB
-
-225 2169 560 (Total time 2581.663009 seconds) 560 SB
-
-225 2219 611 (Maximum Response time 3.341992) 611 SB
-
-225 2269 666 (Total connect time for page 33.253920) 666 SB
-
-225 2319 615 (Maximum time to connect 0.046310) 615 SB
-
-225 2369 676 (Total amount of data moved 625108992) 676 SB
-
-225 2419 294 (Page size 218112) 294 SB
-
-225 2469 525 (Total number of connects 8598) 525 SB
-
-225 2519 1944 (=================================================================================) 1944 SB
-
-225 2619 145 (Page # 4) 145 SB
-
-225 2669 1944 (=================================================================================) 1944 SB
-
-225 2719 692 (Total number of times page was hit 3040) 692 SB
-
-225 2769 581 (Total time 25083.667145 seconds) 581 SB
-
-225 2819 632 (Maximum Response time 11.803875) 632 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Page: 16 16
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (16) 42 SB
-
-gr
-
-225 169 666 (Total connect time for page 26.375753) 666 SB
-
-225 219 615 (Maximum time to connect 0.036555) 615 SB
-
-225 269 697 (Total amount of data moved 9628385280) 697 SB
-
-225 319 315 (Page size 3167232) 315 SB
-
-225 369 525 (Total number of connects 6080) 525 SB
-
-225 419 1944 (=================================================================================) 1944 SB
-
-225 519 145 (Page # 5) 145 SB
-
-225 569 1944 (=================================================================================) 1944 SB
-
-225 619 692 (Total number of times page was hit 1628) 692 SB
-
-225 669 560 (Total time 2148.113647 seconds) 560 SB
-
-225 719 611 (Maximum Response time 2.793287) 611 SB
-
-225 769 666 (Total connect time for page 14.345538) 666 SB
-
-225 819 615 (Maximum time to connect 0.036117) 615 SB
-
-225 869 676 (Total amount of data moved 855207936) 676 SB
-
-225 919 294 (Page size 525312) 294 SB
-
-225 969 525 (Total number of connects 3256) 525 SB
-
-225 1019 1944 (=================================================================================) 1944 SB
-
-225 1119 816 (==================================) 816 SB
-
-225 1169 453 (WEBSTONE number: 450) 453 SB
-
-225 1219 459 (Total number of clients: 24) 459 SB
-
-225 1269 1051 (Total cumulative time of test for all hosts \(sec\): 50333.931099) 1051 SB
-
-225 1319 872 (Total number of pages retrieved from server: 15770) 872 SB
-
-225 1369 583 (Total number of errors to server: 0) 583 SB
-
-225 1419 714 (Total number of connects to server: 41672) 714 SB
-
-225 1469 756 (Average time per connect: 0.004304 seconds) 756 SB
-
-225 1519 769 (Maximum time to connect: 5.782854 seconds) 769 SB
-
-225 1569 711 (Total mount of data moved: 17409474560) 711 SB
-
-225 1619 1438 (Total bytes of body moved: 17401507840 bytes.Total bytes of header moved 7966720) 1438 SB
-
-225 1669 1081 (Average body size: 417583 bytes. Average retrieval size 417774) 1081 SB
-
-225 1719 470 (Thruput = 345879 bytes/sec) 470 SB
-
-225 1769 719 (Average Response time: 1.207859 seconds) 719 SB
-
-225 1819 775 (Maximum Response time: 19.524160 seconds) 775 SB
-
-225 1969 1491 (***********************************************************************) 1491 SB
-
-225 2019 175 (NCSA 1.3) 175 SB
-
-225 2069 1512 (************************************************************************) 1512 SB
-
-225 2169 1380 (/usr/local/bin/webstone -w xpi0-alfalfa -c sulu:2920 -p 1081 -u filelist -t 35 -n %d) 1380 SB
-
-225 2219 773 (Client: gateweb-indy8 Number of Clients: 6) 773 SB
-
-225 2269 773 (Client: gateweb-indy9 Number of Clients: 6) 773 SB
-
-225 2319 783 (Client: gateweb-indy10 Number of Clients: 6) 783 SB
-
-225 2369 783 (Client: gateweb-indy11 Number of Clients: 6) 783 SB
-
-225 2469 616 (Waiting for READY from 24 clients) 616 SB
-
-225 2519 375 (All READYs received) 375 SB
-
-225 2569 428 (Sending GO to all clients) 428 SB
-
-225 2619 793 (All clients started at Fri Mar 17 10:46:38 1995) 793 SB
-
-225 2669 516 (Waiting for clients completion) 516 SB
-
-225 2719 780 (All clients ended at Fri Mar 17 11:22:02 1995) 780 SB
-
-225 2769 145 (Page # 0) 145 SB
-
-225 2819 1944 (=================================================================================) 1944 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Page: 17 17
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (17) 42 SB
-
-gr
-
-225 169 692 (Total number of times page was hit 1414) 692 SB
-
-225 219 581 (Total time 16772.472590 seconds) 581 SB
-
-225 269 632 (Maximum Response time 23.797445) 632 SB
-
-225 319 666 (Total connect time for page 93.585630) 666 SB
-
-225 369 615 (Maximum time to connect 5.997783) 615 SB
-
-225 419 655 (Total amount of data moved 17375232) 655 SB
-
-225 469 273 (Page size 12288) 273 SB
-
-225 519 525 (Total number of connects 4242) 525 SB
-
-225 569 1944 (=================================================================================) 1944 SB
-
-225 669 145 (Page # 1) 145 SB
-
-225 719 1944 (=================================================================================) 1944 SB
-
-225 769 671 (Total number of times page was hit 144) 671 SB
-
-225 819 560 (Total time 1797.158479 seconds) 560 SB
-
-225 869 632 (Maximum Response time 23.050203) 632 SB
-
-225 919 645 (Total connect time for page 0.673942) 645 SB
-
-225 969 615 (Maximum time to connect 0.013216) 615 SB
-
-225 1019 634 (Total amount of data moved 6930432) 634 SB
-
-225 1069 273 (Page size 48128) 273 SB
-
-225 1119 504 (Total number of connects 432) 504 SB
-
-225 1169 1944 (=================================================================================) 1944 SB
-
-225 1269 145 (Page # 2) 145 SB
-
-225 1319 1944 (=================================================================================) 1944 SB
-
-225 1369 671 (Total number of times page was hit 102) 671 SB
-
-225 1419 560 (Total time 4813.787541 seconds) 560 SB
-
-225 1469 632 (Maximum Response time 56.573603) 632 SB
-
-225 1519 645 (Total connect time for page 6.192456) 645 SB
-
-225 1569 615 (Maximum time to connect 5.905150) 615 SB
-
-225 1619 676 (Total amount of data moved 641728512) 676 SB
-
-225 1669 315 (Page size 6291456) 315 SB
-
-225 1719 504 (Total number of connects 204) 504 SB
-
-225 1769 1944 (=================================================================================) 1944 SB
-
-225 1869 145 (Page # 3) 145 SB
-
-225 1919 1944 (=================================================================================) 1944 SB
-
-225 1969 671 (Total number of times page was hit 580) 671 SB
-
-225 2019 560 (Total time 7588.192121 seconds) 560 SB
-
-225 2069 632 (Maximum Response time 25.115934) 632 SB
-
-225 2119 645 (Total connect time for page 2.897182) 645 SB
-
-225 2169 615 (Maximum time to connect 0.019975) 615 SB
-
-225 2219 676 (Total amount of data moved 126504960) 676 SB
-
-225 2269 294 (Page size 218112) 294 SB
-
-225 2319 525 (Total number of connects 1740) 525 SB
-
-225 2369 1944 (=================================================================================) 1944 SB
-
-225 2469 145 (Page # 4) 145 SB
-
-225 2519 1944 (=================================================================================) 1944 SB
-
-225 2569 671 (Total number of times page was hit 600) 671 SB
-
-225 2619 581 (Total time 16247.815216 seconds) 581 SB
-
-225 2669 632 (Maximum Response time 39.003870) 632 SB
-
-225 2719 645 (Total connect time for page 1.790447) 645 SB
-
-225 2769 615 (Maximum time to connect 0.015736) 615 SB
-
-225 2819 697 (Total amount of data moved 1900339200) 697 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Page: 18 18
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (18) 42 SB
-
-gr
-
-225 169 315 (Page size 3167232) 315 SB
-
-225 219 525 (Total number of connects 1200) 525 SB
-
-225 269 1944 (=================================================================================) 1944 SB
-
-225 369 145 (Page # 5) 145 SB
-
-225 419 1944 (=================================================================================) 1944 SB
-
-225 469 671 (Total number of times page was hit 294) 671 SB
-
-225 519 560 (Total time 2922.036210 seconds) 560 SB
-
-225 569 632 (Maximum Response time 20.210504) 632 SB
-
-225 619 666 (Total connect time for page 18.487052) 666 SB
-
-225 669 615 (Maximum time to connect 5.843007) 615 SB
-
-225 719 676 (Total amount of data moved 154441728) 676 SB
-
-225 769 294 (Page size 525312) 294 SB
-
-225 819 504 (Total number of connects 588) 504 SB
-
-225 869 1944 (=================================================================================) 1944 SB
-
-225 969 816 (==================================) 816 SB
-
-225 1019 432 (WEBSTONE number: 89) 432 SB
-
-225 1069 459 (Total number of clients: 24) 459 SB
-
-225 1119 1051 (Total cumulative time of test for all hosts \(sec\): 50244.193163) 1051 SB
-
-225 1169 851 (Total number of pages retrieved from server: 3134) 851 SB
-
-225 1219 583 (Total number of errors to server: 0) 583 SB
-
-225 1269 693 (Total number of connects to server: 8420) 693 SB
-
-225 1319 756 (Average time per connect: 0.014684 seconds) 756 SB
-
-225 1369 769 (Maximum time to connect: 5.995063 seconds) 769 SB
-
-225 1419 690 (Total mount of data moved: 2848899584) 690 SB
-
-225 1469 1417 (Total bytes of body moved: 2847382528 bytes.Total bytes of header moved 1517056) 1417 SB
-
-225 1519 1081 (Average body size: 338169 bytes. Average retrieval size 338349) 1081 SB
-
-225 1569 460 (Thruput = 56701 bytes/sec) 460 SB
-
-225 1619 719 (Average Response time: 5.967243 seconds) 719 SB
-
-225 1669 775 (Maximum Response time: 42.658441 seconds) 775 SB
-
-225 1769 904 (cern 3.0 ************************************) 904 SB
-
-225 1819 1380 (/usr/local/bin/webstone -w xpi0-alfalfa -c sulu:2996 -p 1080 -u filelist -t 45 -n %d) 1380 SB
-
-225 1869 773 (Client: gateweb-indy8 Number of Clients: 6) 773 SB
-
-225 1919 773 (Client: gateweb-indy9 Number of Clients: 6) 773 SB
-
-225 1969 783 (Client: gateweb-indy10 Number of Clients: 6) 783 SB
-
-225 2019 783 (Client: gateweb-indy11 Number of Clients: 6) 783 SB
-
-225 2119 616 (Waiting for READY from 24 clients) 616 SB
-
-225 2169 375 (All READYs received) 375 SB
-
-225 2219 428 (Sending GO to all clients) 428 SB
-
-225 2269 793 (All clients started at Fri Mar 17 15:10:43 1995) 793 SB
-
-225 2319 516 (Waiting for clients completion) 516 SB
-
-225 2369 780 (All clients ended at Fri Mar 17 15:56:07 1995) 780 SB
-
-225 2419 145 (Page # 0) 145 SB
-
-225 2469 1944 (=================================================================================) 1944 SB
-
-225 2519 692 (Total number of times page was hit 3724) 692 SB
-
-225 2569 581 (Total time 16302.320093 seconds) 581 SB
-
-225 2619 632 (Maximum Response time 62.488345) 632 SB
-
-225 2669 708 (Total connect time for page 7149.901812) 708 SB
-
-225 2719 636 (Maximum time to connect 59.671519) 636 SB
-
-225 2769 655 (Total amount of data moved 45530112) 655 SB
-
-225 2819 273 (Page size 12288) 273 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Page: 19 19
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (19) 42 SB
-
-gr
-
-225 169 546 (Total number of connects 11105) 546 SB
-
-225 219 1944 (=================================================================================) 1944 SB
-
-225 319 145 (Page # 1) 145 SB
-
-225 369 1944 (=================================================================================) 1944 SB
-
-225 419 671 (Total number of times page was hit 501) 671 SB
-
-225 469 560 (Total time 2637.893006 seconds) 560 SB
-
-225 519 632 (Maximum Response time 38.798005) 632 SB
-
-225 569 708 (Total connect time for page 1229.359340) 708 SB
-
-225 619 636 (Maximum time to connect 35.484663) 636 SB
-
-225 669 655 (Total amount of data moved 24018944) 655 SB
-
-225 719 273 (Page size 48128) 273 SB
-
-225 769 525 (Total number of connects 1496) 525 SB
-
-225 819 1944 (=================================================================================) 1944 SB
-
-225 919 145 (Page # 2) 145 SB
-
-225 969 1944 (=================================================================================) 1944 SB
-
-225 1019 671 (Total number of times page was hit 432) 671 SB
-
-225 1069 560 (Total time 3164.881323 seconds) 560 SB
-
-225 1119 632 (Maximum Response time 41.850207) 632 SB
-
-225 1169 708 (Total connect time for page 1267.914110) 708 SB
-
-225 1219 636 (Maximum time to connect 35.819251) 636 SB
-
-225 1269 697 (Total amount of data moved 2707423232) 697 SB
-
-225 1319 315 (Page size 6291456) 315 SB
-
-225 1369 504 (Total number of connects 862) 504 SB
-
-225 1419 1944 (=================================================================================) 1944 SB
-
-225 1519 145 (Page # 3) 145 SB
-
-225 1569 1944 (=================================================================================) 1944 SB
-
-225 1619 692 (Total number of times page was hit 2080) 692 SB
-
-225 1669 560 (Total time 8849.459607 seconds) 560 SB
-
-225 1719 632 (Maximum Response time 63.461733) 632 SB
-
-225 1769 708 (Total connect time for page 3450.850531) 708 SB
-
-225 1819 636 (Maximum time to connect 59.909275) 636 SB
-
-225 1869 676 (Total amount of data moved 453441536) 676 SB
-
-225 1919 294 (Page size 218112) 294 SB
-
-225 1969 525 (Total number of connects 6205) 525 SB
-
-225 2019 1944 (=================================================================================) 1944 SB
-
-225 2119 145 (Page # 4) 145 SB
-
-225 2169 1944 (=================================================================================) 1944 SB
-
-225 2219 692 (Total number of times page was hit 1732) 692 SB
-
-225 2269 581 (Total time 10588.881744 seconds) 581 SB
-
-225 2319 632 (Maximum Response time 63.663196) 632 SB
-
-225 2369 708 (Total connect time for page 5386.565167) 708 SB
-
-225 2419 636 (Maximum time to connect 59.516712) 636 SB
-
-225 2469 697 (Total amount of data moved 5447897088) 697 SB
-
-225 2519 315 (Page size 3167232) 315 SB
-
-225 2569 525 (Total number of connects 3452) 525 SB
-
-225 2619 1944 (=================================================================================) 1944 SB
-
-225 2719 145 (Page # 5) 145 SB
-
-225 2769 1944 (=================================================================================) 1944 SB
-
-225 2819 671 (Total number of times page was hit 943) 671 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Page: 20 20
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (20) 42 SB
-
-gr
-
-225 169 560 (Total time 3968.363226 seconds) 560 SB
-
-225 219 632 (Maximum Response time 62.245675) 632 SB
-
-225 269 708 (Total connect time for page 2099.311825) 708 SB
-
-225 319 636 (Maximum time to connect 59.244292) 636 SB
-
-225 369 676 (Total amount of data moved 491273216) 676 SB
-
-225 419 294 (Page size 525312) 294 SB
-
-225 469 525 (Total number of connects 1878) 525 SB
-
-225 519 1896 (===============================================================================) 1896 SB
-
-225 619 816 (==================================) 816 SB
-
-225 669 453 (WEBSTONE number: 209) 453 SB
-
-225 719 459 (Total number of clients: 24) 459 SB
-
-225 769 1051 (Total cumulative time of test for all hosts \(sec\): 45943.710179) 1051 SB
-
-225 819 851 (Total number of pages retrieved from server: 9412) 851 SB
-
-225 869 625 (Total number of errors to server: 247) 625 SB
-
-225 919 714 (Total number of connects to server: 25167) 714 SB
-
-225 969 756 (Average time per connect: 0.823767 seconds) 756 SB
-
-225 1019 790 (Maximum time to connect: 30.002288 seconds) 790 SB
-
-225 1069 690 (Total mount of data moved: 9394691072) 690 SB
-
-225 1119 1417 (Total bytes of body moved: 9389627392 bytes.Total bytes of header moved 5063680) 1417 SB
-
-225 1169 1081 (Average body size: 373093 bytes. Average retrieval size 373294) 1081 SB
-
-225 1219 470 (Thruput = 204483 bytes/sec) 470 SB
-
-225 1269 719 (Average Response time: 1.825553 seconds) 719 SB
-
-225 1319 775 (Maximum Response time: 34.973206 seconds) 775 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1420 736 (7.1 Summary of results) 736 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-225 1595 182 (Netsite 1.0) 182 SB
-
-225 1645 453 (WEBSTONE number: 450) 453 SB
-
-225 1695 459 (Total number of clients: 24) 459 SB
-
-225 1745 1051 (Total cumulative time of test for all hosts \(sec\): 50333.931099) 1051 SB
-
-225 1795 872 (Total number of pages retrieved from server: 15770) 872 SB
-
-225 1845 583 (Total number of errors to server: 0) 583 SB
-
-225 1895 714 (Total number of connects to server: 41672) 714 SB
-
-225 1945 756 (Average time per connect: 0.004304 seconds) 756 SB
-
-225 1995 769 (Maximum time to connect: 5.782854 seconds) 769 SB
-
-225 2045 711 (Total mount of data moved: 17409474560) 711 SB
-
-225 2095 1438 (Total bytes of body moved: 17401507840 bytes.Total bytes of header moved 7966720) 1438 SB
-
-225 2145 1081 (Average body size: 417583 bytes. Average retrieval size 417774) 1081 SB
-
-225 2195 470 (Thruput = 345879 bytes/sec) 470 SB
-
-225 2245 719 (Average Response time: 1.207859 seconds) 719 SB
-
-225 2295 775 (Maximum Response time: 19.524160 seconds) 775 SB
-
-225 2395 147 (Cern 3.0) 147 SB
-
-225 2445 453 (WEBSTONE number: 209) 453 SB
-
-225 2495 459 (Total number of clients: 24) 459 SB
-
-225 2545 1051 (Total cumulative time of test for all hosts \(sec\): 45943.710179) 1051 SB
-
-225 2595 851 (Total number of pages retrieved from server: 9412) 851 SB
-
-225 2645 625 (Total number of errors to server: 247) 625 SB
-
-225 2695 714 (Total number of connects to server: 25167) 714 SB
-
-225 2745 756 (Average time per connect: 0.823767 seconds) 756 SB
-
-225 2795 790 (Maximum time to connect: 30.002288 seconds) 790 SB
-
-225 2845 690 (Total mount of data moved: 9394691072) 690 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 21 21
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (21) 42 SB
-
-gr
-
-225 169 1417 (Total bytes of body moved: 9389627392 bytes.Total bytes of header moved 5063680) 1417 SB
-
-225 219 1081 (Average body size: 373093 bytes. Average retrieval size 373294) 1081 SB
-
-225 269 470 (Thruput = 204483 bytes/sec) 470 SB
-
-225 319 719 (Average Response time: 1.825553 seconds) 719 SB
-
-225 369 775 (Maximum Response time: 34.973206 seconds) 775 SB
-
-225 469 175 (NCSA 1.3) 175 SB
-
-225 519 432 (WEBSTONE number: 89) 432 SB
-
-225 569 459 (Total number of clients: 24) 459 SB
-
-225 619 1051 (Total cumulative time of test for all hosts \(sec\): 50244.193163) 1051 SB
-
-225 669 851 (Total number of pages retrieved from server: 3134) 851 SB
-
-225 719 583 (Total number of errors to server: 0) 583 SB
-
-225 769 693 (Total number of connects to server: 8420) 693 SB
-
-225 819 756 (Average time per connect: 0.014684 seconds) 756 SB
-
-225 869 769 (Maximum time to connect: 5.995063 seconds) 769 SB
-
-225 919 690 (Total mount of data moved: 2848899584) 690 SB
-
-225 969 1417 (Total bytes of body moved: 2847382528 bytes.Total bytes of header moved 1517056) 1417 SB
-
-225 1019 1081 (Average body size: 338169 bytes. Average retrieval size 338349) 1081 SB
-
-225 1069 460 (Thruput = 56701 bytes/sec) 460 SB
-
-225 1119 719 (Average Response time: 5.967243 seconds) 719 SB
-
-225 1169 775 (Maximum Response time: 42.658441 seconds) 775 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-225 1307 1818 (The three examples above show a typical output from a run of the WebSTONE benchmark.) 1818 SB
-
-225 1366 1393 (The WebSTONE number is the number of pages retrieved per minute.) 1393 SB
-
-225 1425 1863 (Average time to connect: This is calculated by dividing the total time to connect by the total ) 1863 SB
-
-375 1484 403 (number of connects.) 403 SB
-
-225 1543 1907 (Maximum time to connect: This is defined as the longest time it took to connect during the run.) 1907 SB
-
-225 1602 1579 (Total amount of data moved: This is the amount of data transferred during the ) 1580 SB
-
-1805 1602 92 (run. ) 93 SB
-
-1898 1602 30 (\( ) 31 SB
-
-1929 1602 161 (NOTE: ) 162 SB
-
-2091 1602 13 ( ) 14 SB
-
-2105 1602 70 (this) 70 SB
-
-375 1661 1756 (also includes data moved of pages that where incomplete. Incomplete pages means that ) 1756 SB
-
-375 1720 1401 (the page was interrupted during retrieval and was unable to complete.\)) 1401 SB
-
-225 1779 1909 (Average Response time: This is calculated by dividing the total response time by the number of ) 1909 SB
-
-375 1838 187 (response.) 187 SB
-
-225 1897 1649 (Maximum response time: This is the maximum time to connect and transfer a page.) 1649 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2045 1455 (8. Future of the WebSTONE and future work) 1455 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 2220 67 (As ) 69 SB
-
-444 2220 83 (this ) 85 SB
-
-529 2220 44 (is ) 46 SB
-
-575 2220 74 (the ) 76 SB
-
-651 2220 91 (first ) 93 SB
-
-744 2220 157 (version ) 159 SB
-
-903 2220 54 (of ) 56 SB
-
-959 2220 74 (the ) 76 SB
-
-1035 2220 230 (benchmark ) 232 SB
-
-1267 2220 40 (it ) 42 SB
-
-1309 2220 44 (is ) 46 SB
-
-1355 2220 54 (to ) 56 SB
-
-1411 2220 59 (be ) 62 SB
-
-1473 2220 227 (considered ) 230 SB
-
-1703 2220 35 (a ) 38 SB
-
-1741 2220 122 (living ) 125 SB
-
-1866 2220 230 (benchmark ) 233 SB
-
-2099 2220 76 (that) 76 SB
-
-225 2279 699 (will continue to grow and improve.) 699 SB
-
-375 2397 482 (In the future there are a ) 483 SB
-
-858 2397 162 (number ) 163 SB
-
-1021 2397 54 (of ) 55 SB
-
-1076 2397 132 (things ) 133 SB
-
-1209 2397 89 (that ) 90 SB
-
-1299 2397 106 (need ) 107 SB
-
-1406 2397 54 (to ) 55 SB
-
-1461 2397 59 (be ) 60 SB
-
-1521 2397 132 (added ) 133 SB
-
-1654 2397 54 (to ) 55 SB
-
-1709 2397 74 (the ) 75 SB
-
-1784 2397 230 (benchmark ) 231 SB
-
-2015 2397 89 (that ) 90 SB
-
-2105 2397 70 (this) 70 SB
-
-225 2456 1529 (author at this time did not have time to add. The following is but a small list.) 1529 SB
-
-32 0 0 75 75 0 0 0 75 /Symbol font
-
-226 2513 34 (\267) 35 SB
-
-261 2513 19 ( ) 40 SB
-
-225 2513 34 (\267) 35 SB
-
-260 2513 19 ( ) 40 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2543 893 (Effects of the CGI \(Common Gate Interface\)) 893 SB
-
-32 0 0 75 75 0 0 0 75 /Symbol font
-
-226 2600 34 (\267) 35 SB
-
-261 2600 19 ( ) 40 SB
-
-225 2600 34 (\267) 35 SB
-
-260 2600 19 ( ) 40 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2630 798 (Security \(encryption and authentication\)) 798 SB
-
-32 0 0 75 75 0 0 0 75 /Symbol font
-
-226 2687 34 (\267) 35 SB
-
-261 2687 19 ( ) 40 SB
-
-225 2687 34 (\267) 35 SB
-
-260 2687 19 ( ) 40 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2717 298 (HTML parsing) 298 SB
-
-32 0 0 75 75 0 0 0 75 /Symbol font
-
-226 2774 34 (\267) 35 SB
-
-261 2774 19 ( ) 40 SB
-
-225 2774 34 (\267) 35 SB
-
-260 2774 19 ( ) 40 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-300 2804 436 (RDBMS performance) 436 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Symbol
-
-%%+ font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 22 22
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (22) 42 SB
-
-gr
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 257 1067 (These and others are of importance in the near future.) 1067 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 376 658 (9. Acknowledgments) 658 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 551 129 (There ) 139 SB
-
-514 551 74 (are ) 84 SB
-
-598 551 35 (a ) 45 SB
-
-643 551 162 (number ) 172 SB
-
-815 551 54 (of ) 64 SB
-
-879 551 145 (people ) 155 SB
-
-1034 551 89 (that ) 99 SB
-
-1133 551 105 (have ) 115 SB
-
-1248 551 143 (helped ) 153 SB
-
-1401 551 100 (with ) 111 SB
-
-1512 551 83 (this ) 94 SB
-
-1606 551 230 (benchmark ) 241 SB
-
-1847 551 102 (over ) 113 SB
-
-1960 551 74 (the ) 85 SB
-
-2045 551 94 (past ) 105 SB
-
-2150 551 25 (2) 25 SB
-
-225 610 171 (months. ) 180 SB
-
-405 610 13 ( ) 22 SB
-
-427 610 103 (First ) 112 SB
-
-539 610 84 (and ) 93 SB
-
-632 610 190 (foremost ) 199 SB
-
-831 610 121 (Mark ) 130 SB
-
-961 610 110 (Sake ) 120 SB
-
-1081 610 99 (who ) 109 SB
-
-1190 610 143 (helped ) 153 SB
-
-1343 610 108 (code ) 118 SB
-
-1461 610 84 (and ) 94 SB
-
-1555 610 448 (developed/architected ) 458 SB
-
-2013 610 74 (the ) 84 SB
-
-2097 610 78 (first) 78 SB
-
-225 669 1412 (version of the benchmark. Steffen Low for support and belief that this ) 1413 SB
-
-1638 669 144 (should ) 145 SB
-
-1783 669 168 (happen. ) 169 SB
-
-1952 669 13 ( ) 14 SB
-
-1966 669 70 (To ) 71 SB
-
-2037 669 138 (Helena) 138 SB
-
-225 728 339 (Winkler-Parenty ) 353 SB
-
-578 728 71 (for ) 85 SB
-
-663 728 59 (all ) 73 SB
-
-736 728 76 (her ) 90 SB
-
-826 728 109 (help. ) 123 SB
-
-949 728 13 ( ) 27 SB
-
-976 728 30 (I ) 44 SB
-
-1020 728 137 (would ) 151 SB
-
-1171 728 92 (also ) 107 SB
-
-1278 728 84 (like ) 99 SB
-
-1377 728 54 (to ) 69 SB
-
-1446 728 147 (special ) 162 SB
-
-1608 728 123 (thank ) 138 SB
-
-1746 728 132 (David ) 147 SB
-
-1893 728 209 (Ceimwize ) 224 SB
-
-2117 728 58 (for) 58 SB
-
-225 787 535 (contributions to this paper.) 535 SB
-
-375 905 221 (Additional ) 222 SB
-
-597 905 142 (thanks ) 143 SB
-
-740 905 54 (to ) 55 SB
-
-795 905 105 (Neal ) 106 SB
-
-901 905 177 (Nucklus ) 178 SB
-
-1079 905 84 (and ) 85 SB
-
-1164 905 82 (Bill ) 83 SB
-
-1247 905 182 (Nowicki ) 183 SB
-
-1430 905 71 (for ) 72 SB
-
-1502 905 147 (critical ) 148 SB
-
-1650 905 114 (input ) 115 SB
-
-1765 905 54 (to ) 55 SB
-
-1820 905 83 (this ) 84 SB
-
-1904 905 124 (paper ) 125 SB
-
-2029 905 84 (and ) 85 SB
-
-2114 905 61 (the) 61 SB
-
-225 964 230 (benchmark.) 230 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1083 742 (10. Author information) 742 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-375 1258 117 (Gene ) 128 SB
-
-503 1258 122 (Trent ) 133 SB
-
-636 1258 44 (is ) 55 SB
-
-691 1258 35 (a ) 46 SB
-
-737 1258 179 (Member ) 190 SB
-
-927 1258 54 (of ) 65 SB
-
-992 1258 204 (Technical ) 215 SB
-
-1207 1258 99 (staff ) 110 SB
-
-1317 1258 49 (in ) 61 SB
-
-1378 1258 74 (the ) 86 SB
-
-1464 1258 187 (Advance ) 199 SB
-
-1663 1258 108 (Data ) 120 SB
-
-1783 1258 178 (Division ) 190 SB
-
-1973 1258 54 (of ) 66 SB
-
-2039 1258 136 (Silicon) 136 SB
-
-225 1317 203 (Graphics. ) 220 SB
-
-445 1317 13 ( ) 30 SB
-
-475 1317 87 (Mr. ) 104 SB
-
-579 1317 122 (Trent ) 139 SB
-
-718 1317 44 (is ) 61 SB
-
-779 1317 74 (the ) 91 SB
-
-870 1317 184 (principal ) 201 SB
-
-1071 1317 194 (Software ) 211 SB
-
-1282 1317 190 (Engineer ) 207 SB
-
-1489 1317 89 (that ) 106 SB
-
-1595 1317 216 (developed ) 234 SB
-
-1829 1317 74 (the ) 92 SB
-
-1921 1317 254 (WebSTONE) 254 SB
-
-225 1376 230 (benchmark ) 231 SB
-
-456 1376 84 (and ) 85 SB
-
-541 1376 142 (author ) 143 SB
-
-684 1376 54 (of ) 55 SB
-
-739 1376 83 (this ) 84 SB
-
-823 1376 122 (white ) 124 SB
-
-947 1376 137 (paper. ) 139 SB
-
-1086 1376 13 ( ) 15 SB
-
-1101 1376 117 (Gene ) 119 SB
-
-1220 1376 119 (holds ) 121 SB
-
-1341 1376 35 (a ) 37 SB
-
-1378 1376 201 (bachelors ) 203 SB
-
-1581 1376 146 (degree ) 148 SB
-
-1729 1376 49 (in ) 51 SB
-
-1780 1376 216 (Electronic ) 218 SB
-
-1998 1376 177 (Engineer) 177 SB
-
-225 1435 232 (technology ) 235 SB
-
-460 1435 108 (from ) 111 SB
-
-571 1435 135 (Devry ) 138 SB
-
-709 1435 177 (Institute ) 180 SB
-
-889 1435 54 (of ) 57 SB
-
-946 1435 261 (Technology. ) 264 SB
-
-1210 1435 13 ( ) 16 SB
-
-1226 1435 71 (He ) 74 SB
-
-1300 1435 81 (can ) 84 SB
-
-1384 1435 59 (be ) 63 SB
-
-1447 1435 167 (reached ) 171 SB
-
-1618 1435 50 (at ) 54 SB
-
-1672 1435 249 (et@sgi.com ) 253 SB
-
-1925 1435 56 (or ) 60 SB
-
-1985 1435 50 (at ) 54 SB
-
-2039 1435 136 (Silicon) 136 SB
-
-225 1494 757 (Graphics 2011 N. Mountain View, Ca) 757 SB
-
-375 1612 121 (Mark ) 133 SB
-
-508 1612 110 (Sake ) 122 SB
-
-630 1612 44 (is ) 56 SB
-
-686 1612 35 (a ) 47 SB
-
-733 1612 179 (Member ) 191 SB
-
-924 1612 54 (of ) 66 SB
-
-990 1612 204 (Technical ) 216 SB
-
-1206 1612 99 (staff ) 111 SB
-
-1317 1612 49 (in ) 61 SB
-
-1378 1612 74 (the ) 86 SB
-
-1464 1612 187 (Advance ) 199 SB
-
-1663 1612 108 (Data ) 120 SB
-
-1783 1612 178 (Division ) 190 SB
-
-1973 1612 54 (of ) 66 SB
-
-2039 1612 136 (Silicon) 136 SB
-
-225 1671 1238 (Graphics. Mr. Sake co-authored the WebSTONE benchmark.) 1238 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 1938 486 (11. References:) 486 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-383 2094 59 ([1]) 59 SB
-
-525 2094 862 (Berners-Lee, Fielding, and Frystyk Nielsen.) 862 SB
-
-525 2153 303 (\223Hypertext Tra) 303 SB
-
-828 2153 550 (nsfer Protocol - HTTP/1.0\224) 550 SB
-
-525 2212 986 (Network Working Group INTERRNET_DRAFT) 986 SB
-
-525 2271 639 (<draft-fielding-http-spec-01.ps>) 639 SB
-
-525 2330 1311 (<URL:http://www.ics.uci.edu/pub/ietf/http/> December 19, 1994) 1311 SB
-
-375 2439 59 ([2]) 59 SB
-
-525 2439 566 (Mark Wittle, Bruce E. Keith) 566 SB
-
-525 2498 1359 (\223LADDIS: The Next Generation In NFS File Server Benchmarking\224) 1359 SB
-
-525 2557 1031 (USENIX Association Conference Proceeding, 1993) 1031 SB
-
-32 0 0 75 75 0 0 0 69 /Times-Bold /font29 ANSIFont font
-
-225 2726 507 (12. Trademarks) 507 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Bold
-
-%%+ font Times-Roman
-
-%%Page: 23 23
-
-%%PageResources: (atend)
-
-SS
-
-0 0 25 11 798 1100 300 SM
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-0 0 0 fC
-
-225 2951 226 (Gene Trent) 226 SB
-
-225 3010 716 (Copyright \251 Silicon Graphics, 1995) 716 SB
-
-32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
-
-gs 42 50 2133 2899 CB
-
-2133 2901 42 (23) 42 SB
-
-gr
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-225 169 91 (NFS) 91 SB
-
-32 0 0 31 31 0 0 0 28 /Times-Roman /font32 ANSIFont font
-
-316 163 32 (tm) 32 SB
-
-32 0 0 50 50 0 0 0 45 /Times-Roman /font32 ANSIFont font
-
-348 169 828 ( is a trademark of Sun Microsystems, Inc.) 828 SB
-
-225 228 1274 (UNIX is a registered trademark of UNIX Systems Laboratories.) 1274 SB
-
-1 #C
-
-statusdict begin /manualfeed false store end
-
-EJ RS
-
-%%PageTrailer
-
-%%PageResources: font Times-Roman
-
-%%Trailer
-
-SVDoc restore
-
-end
-
-%%Pages: 23
-
-% TrueType font name key:
-
-% MSTT31c0e8 = 2b0fDTimes New RomanF0000002a000001900000
-
-% MSTT31c0f9 = 089fDTimes New RomanF0000003a000002bc0000
-
-% MSTT31c106 = 089fDTimes New RomanF0000003a000001900000
-
-% MSTT31c113 = 089fDTimes New RomanF00000053000002bc0000
-
-% MSTT31c120 = 089fDTimes New RomanF00000032000001900000
-
-% MSTT31c132 = 089fDTimes New RomanF0000002a000001900000
-
-% MSTT31c13f = 089fDTimes New RomanF0000004b000002bc0000
-
-% MSTT31c14c = 089fDSymbolF00000032000001900000
-
-% MSTT31c157 = 089fDTimes New RomanF00000021000001900000
-
-% MSTT31c164 = 089fDTimes New RomanF00000026000001900000
-
-% MSTT31c171 = 089fDSymbolF00000032000002bc0000
-
-% MSTT31c17c = 089fDTimes New RomanF00000032000002bc0000
-
-% MSTT31c189 = 089fDSymbolF0000004b000002bc0000
-
-% MSTT31c194 = 089fDTimes New RomanF0000001f000001900000
-
-% MSTT31c1aa = 089fDTimes New RomanF0000004b000001900000
-
-% MSTT31c1b7 = 09dfDTimes New RomanF0000003a000002bc0000
-
-% MSTT31c1c4 = 09dfDTimes New RomanF00000053000002bc0000
-
-% MSTT31c1d1 = 09dfDTimes New RomanF00000032000001900000
-
-% MSTT31c1de = 09dfDTimes New RomanF0000003a000001900000
-
-% MSTT31c1eb = 09dfDTimes New RomanF0000002a000001900000
-
-% MSTT31c1f8 = 09dfDTimes New RomanF0000004b000002bc0000
-
-% MSTT31c205 = 09dfDSymbolF00000032000001900000
-
-% MSTT31c210 = 09dfDTimes New RomanF00000021000001900000
-
-% MSTT31c21d = 09dfDSymbolF00000032000002bc0000
-
-% MSTT31c228 = 09dfDTimes New RomanF00000032000002bc0000
-
-% MSTT31c235 = 09dfDTimes New RomanF00000026000001900000
-
-% MSTT31c242 = 09dfDSymbolF0000004b000002bc0000
-
-% MSTT31c24d = 09dfDTimes New RomanF0000001f000001900000
-
-%%DocumentSuppliedResources: procset Win35Dict 3 1
-
-
-
-%%DocumentNeededResources: font Symbol
-
-%%+ font Times-Bold
-
-%%+ font Times-Roman
-
-
-
-%%EOF
-
-
diff --git a/apps/JAWS/clients/WebSTONE/doc/webstone.gif b/apps/JAWS/clients/WebSTONE/doc/webstone.gif
deleted file mode 100644
index c7cd76d9a59..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/webstone.gif
+++ /dev/null
Binary files differ
diff --git a/apps/JAWS/clients/WebSTONE/doc/webstone2.html b/apps/JAWS/clients/WebSTONE/doc/webstone2.html
deleted file mode 100644
index 50534eb704c..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/webstone2.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<HTML VERSION="2.0">
-<HEAD>
-<!-- WEBMAGIC VERSION NUMBER="2.0.1" -->
-<!-- WEBMAGIC TRANSLATION NAME="ServerRoot" SRC="/var/www/htdocs/" DST="/" -->
-<!-- WEBMAGIC TRANSLATION NAME="ProjectRoot" SRC="./" DST="" -->
-<TITLE>What is Webstone 2.0</TITLE>
-</HEAD>
-<BODY>
-<CENTER><H1 ALIGN="CENTER"><IMG SRC="webstone.gif" WIDTH="534" HEIGHT="174" SGI_FULLPATH="/disk6/WebStone-2.0/doc/webstone.gif"></H1>
-</CENTER><H1>Introducing WebStone 2.0</H1>
-<P>WebStone 2.0 is the second generation Webstone web server benchmark. It
-incorporates numerous bug fixes, modifications for compatibility with other
-platforms and adds the new functionality of benchmark proxy servers, cgi
-and NSAPI programs as well as introducing run rules which should make Webstone
-numbers significantly more meaningful for comparison.</P>
-<H2>New Features</H2>
-<P>Webstone 2.0 provides facilities for benchmarking proxy servers. This is
-accomplished by putting in a value for the the PROXYSERVER entry in the
-conf/testbed file, and changing the filelist to include URL's that have
-the hostname for the actual web server.</P>
-<P>Dynamic content benchmarking is now explicitly supported in Webstone 2.0.
-The file README.DynamicWorkload has directions for testing of NSAPI. The
-included filelist.dynamic-{light,medium,heavy} serve as sample loads, with
-the filelist.dynamic-heavy being the load that should be reported for NSAPI
-performance. The cgi-send numbers should be quored for the filelist.cgi-heavy
-fileset.</P>
-<P>A port of the WebStone 2.0 benchmark to Windows NT is also included in this
-release. This port is still in progress, so full functionality is not assured.
-Specifically only the benchmark code has been ported - the supporting scripts
-have not.</P>
-<H2>Run Rules</H2>
-<P>As of Webstone 2.0, there are now run rules which must be adhered to for
-published Webstone numbers. These are fairly basic, but they provide important
-constraints on the benchmarking which make Webstone numbers more meaningful.</P>
-<P><B>Fileset: </B>Included in the Webstone distribution is filelist.standard, which was previously
-called filelist.sample. This filelist has a distribution of fileset sizes
-that matches the kind of distributions seen in live web sites. The largest
-file in the distribution is a 5 MB in length, which simulates the occasional
-MPEG or other animation file which is downloaded. This filelist should be
-used for all published Webstone numbers. Note that running WebStone 2.0
-with the sort of fileset given in WebStone 1.1 will not yield a comparable
-benchmark. In general, the WebStone 2.0 filelist will yield lower rates
-for connections/second, but higher rates for throughput - the two sets of
-numbers cannot be compared.</P>
-<P>When reporting NSAPI numbers, the filelist.dynamic-heavy filelist should
-be used. For CGI numbers, the filelist.cgi-heavy filelist should be used.</P>
-<P><B>Benchmark Run Configuration:</B> For a reported WebStone run, the runtime must be set at least 10 minutes.
-This provides adequate time for the server and client configuration to reach
-a steady state, and then provides a length of time long enough to cancel
-out the high variations seen in the first few minutes of the run. The number
-of clients should also vary from 20 to 100 in increments of 10 so that performance
-of the server under a wide variety of loads can be observed.</P>
-<P><B>Server Configuration:</B> The number of threads/processes is open to the discretion of the benchmarkers.
-However, whether server side logging is on must be explicitly reported.
-When logging is turned on, it must be in the common logfile format, and
-only IP addresses should be logged. Parsed HTML is recommended to be turned
-off.</P>
-<P>Proxy Configuration: The configuration of how often the proxy server polls
-the actual server for refreshes of it's cache should be described, as well
-as any information</P>
-<P><B>Server Machine Configuration:</B> When reporting runs, it is necessary that the operating system, memory
-configuration and any special operating system modifications be reported,
-especially changes to the TCP/IP stack.</P>
-<P><B>Testbed configuration: </B>Reported runs must include information about the network topology being
-used, as well as the number and type of machines generating load.</P>
-<P>All reported runs must include the information summarized by webstone -results,
-excluding the timestamp. This includes: number of clients, connections per
-second, little's law number, latency, error level and throughput. Preferably
-in a table format.</P>
-</BODY>
-</HTML>
diff --git a/apps/JAWS/clients/WebSTONE/src/Makefile b/apps/JAWS/clients/WebSTONE/src/Makefile
deleted file mode 100644
index d57dfffcd8f..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/Makefile
+++ /dev/null
@@ -1,112 +0,0 @@
-# Generated automatically from Makefile.in by configure.
-#
-# WebStone src/Makefile.in, version 2.0a5
-# last modified 12 Dec 1995 by mblakele@engr.sgi.com
-#
-
-PRODUCT = webstone
-VERSION = 2.0b4
-
-DYNAMICDEFS = -DMCC_HTTPD -DXP_UNIX
-DYNAMICINCLUDES = -I/usr/ns-home/nsapi/include
-
-LD_SHAREDCMD = ld -shared
-
-CC = cc
-LIBS = -lsocket -lm -lthread #-lm
-LDFLAGS =
-INCLUDES = $(DYNAMICINCLUDES)
-CFLAGS = -fast
-CPPFLAGS =
-DEFS = -DHAVE_CONFIG_H $(DYNAMICDEFS)
-
-BINDIR = ../bin
-CP = cp
-RM = rm -f
-
-EXECUTABLE1 = webmaster
-MAIN1 = webmaster.c
-EXECUTABLE2 = webclient
-MAIN2 = webclient.c
-EXECUTABLE3 = genrand
-MAIN3 = genrand.c
-
-MASTERSRCS = timefunc.c bench.c parse_file_list.c statistics.c \
- errexit.c sysdep.c
-
-STONESRCS = timefunc.c get.c \
- parse_file_list.c bench.c statistics.c errexit.c \
- sysdep.c
-
-#For Solaris 2.x, remove the comment from the following lines
-LIBS = -lm -lnsl -lsocket
-#-L/usr/ucblib -lucb
-#INCLUDES = -I/usr/ns-home/nsapi/include -I/usr/ucbinclude
-
-OPTIMIZATION = -O
-COMPILE = $(CC) $(CFLAGS) $(DEFS) $(INCLUDES)
-
-MASTEROBJS = webmaster.o $(MASTERSRCS:.c=.o)
-STONEOBJS = webclient.o $(STONESRCS:.c=.o)
-GENRANDOBJS = genrand.o
-
-TARGETS = $(EXECUTABLE1) $(EXECUTABLE2) $(EXECUTABLE3)
-
-.SUFFIXES:
-.SUFFIXES: .c .o
-.c.o:
- @echo "COMPILING FILE " $<
- $(COMPILE) -c $< -o $@
-
-all: $(TARGETS)
-
-install: all
- $(CP) $(TARGETS) $(BINDIR)
-
-pure: all
- purify -mail-to-user=root webclient
- $(CP) webclient.pure $(BINDIR)/webclient
- $(RM) webclient.pure
- purify -mail-to-user=root webmaster
- $(CP) webmaster.pure $(BINDIR)/webmaster
- $(RM) webmaster.pure
-
-clean:
- $(RM) $(MASTEROBJS) $(STONEOBJS) $(GENRANDOBJS)
- $(RM) webmaster.pure webclient.pure
-
-clobber: clean
- $(RM) config.cache config.log config.status config.h Makefile
- $(RM) $(TARGETS)
-
-webmaster.o: webmaster.c bench.h parse_file_list.h statistics.h \
- sysdep.h timefunc.h debug.h config.h
-
-webclient.o: webclient.c bench.h debug.h get.h \
- parse_file_list.h statistics.h sysdep.h timefunc.h config.h
-
-timefunc.o: timefunc.c timefunc.h bench.h debug.h statistics.h \
- sysdep.h config.h
-
-bench.o: bench.c bench.h debug.h statistics.h sysdep.h timefunc.h config.h
-
-errexit.o: errexit.c sysdep.h config.h
-
-statistics.o: statistics.c statistics.h sysdep.h config.h
-
-cgi: cgi-send.o
- $(COMPILE) cgi-send.o -o cgi-send.cgi
-
-nsapi: nsapi-send.o
- $(LD_SHAREDCMD) nsapi-send.o -o nsapi-send.so
-
-webmaster: $(MASTEROBJS)
- $(COMPILE) $(MASTEROBJS) $(LIBPATH) $(LIBS) -o $(EXECUTABLE1)
-
-webclient: $(STONEOBJS)
- $(COMPILE) $(STONEOBJS) $(LIBPATH) $(LIBS) -lthread -o $(EXECUTABLE2)
-
-genrand: $(GENRANDOBJS)
- $(COMPILE) $(GENRANDOBJS) $(LIBPATH) $(LIBS) -o $(EXECUTABLE3)
-
-#
diff --git a/apps/JAWS/clients/WebSTONE/src/Makefile.in b/apps/JAWS/clients/WebSTONE/src/Makefile.in
deleted file mode 100644
index da887d4a6c7..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/Makefile.in
+++ /dev/null
@@ -1,110 +0,0 @@
-#
-# WebStone src/Makefile.in, version 2.0a5
-# last modified 12 Dec 1995 by mblakele@engr.sgi.com
-#
-
-PRODUCT = @PRODUCT@
-VERSION = @VERSION@
-
-DYNAMICDEFS = -DMCC_HTTPD -DXP_UNIX
-DYNAMICINCLUDES = -I/usr/ns-home/nsapi/include
-
-LD_SHAREDCMD = ld -shared
-
-CC = @CC@
-LIBS = @LIBS@ #-lm
-LDFLAGS = @LDFLAGS@
-INCLUDES = $(DYNAMICINCLUDES)
-CFLAGS = @CFLAGS@
-CPPFLAGS = @CPPFLAGS@
-DEFS = @DEFS@ $(DYNAMICDEFS)
-
-BINDIR = ../bin
-CP = cp
-RM = rm -f
-
-EXECUTABLE1 = webmaster
-MAIN1 = webmaster.c
-EXECUTABLE2 = webclient
-MAIN2 = webclient.c
-EXECUTABLE3 = genrand
-MAIN3 = genrand.c
-
-MASTERSRCS = timefunc.c bench.c parse_file_list.c statistics.c \
- errexit.c sysdep.c
-
-STONESRCS = timefunc.c get.c \
- parse_file_list.c bench.c statistics.c errexit.c \
- sysdep.c
-
-#For Solaris 2.x, remove the comment from the following lines
-#LIBS = -lm -lnsl -lsocket -L/usr/ucblib -lucb
-#INCLUDES = -I/usr/ns-home/nsapi/include -I/usr/ucbinclude
-
-OPTIMIZATION = -O
-COMPILE = $(CC) $(CFLAGS) $(DEFS) $(INCLUDES)
-
-MASTEROBJS = webmaster.o $(MASTERSRCS:.c=.o)
-STONEOBJS = webclient.o $(STONESRCS:.c=.o)
-GENRANDOBJS = genrand.o
-
-TARGETS = $(EXECUTABLE1) $(EXECUTABLE2) $(EXECUTABLE3)
-
-.SUFFIXES:
-.SUFFIXES: .c .o
-.c.o:
- @echo "COMPILING FILE " $<
- $(COMPILE) -c $< -o $@
-
-all: $(TARGETS)
-
-install: all
- $(CP) $(TARGETS) $(BINDIR)
-
-pure: all
- purify -mail-to-user=root webclient
- $(CP) webclient.pure $(BINDIR)/webclient
- $(RM) webclient.pure
- purify -mail-to-user=root webmaster
- $(CP) webmaster.pure $(BINDIR)/webmaster
- $(RM) webmaster.pure
-
-clean:
- $(RM) $(MASTEROBJS) $(STONEOBJS) $(GENRANDOBJS)
- $(RM) webmaster.pure webclient.pure
-
-clobber: clean
- $(RM) config.cache config.log config.status config.h Makefile
- $(RM) $(TARGETS)
-
-webmaster.o: webmaster.c bench.h parse_file_list.h statistics.h \
- sysdep.h timefunc.h debug.h config.h
-
-webclient.o: webclient.c bench.h debug.h get.h \
- parse_file_list.h statistics.h sysdep.h timefunc.h config.h
-
-timefunc.o: timefunc.c timefunc.h bench.h debug.h statistics.h \
- sysdep.h config.h
-
-bench.o: bench.c bench.h debug.h statistics.h sysdep.h timefunc.h config.h
-
-errexit.o: errexit.c sysdep.h config.h
-
-statistics.o: statistics.c statistics.h sysdep.h config.h
-
-cgi: cgi-send.o
- $(COMPILE) cgi-send.o -o cgi-send.cgi
-
-nsapi: nsapi-send.o
- $(LD_SHAREDCMD) nsapi-send.o -o nsapi-send.so
-
-webmaster: $(MASTEROBJS)
- $(COMPILE) $(MASTEROBJS) $(LIBPATH) $(LIBS) -o $(EXECUTABLE1)
-
-webclient: $(STONEOBJS)
- $(COMPILE) $(STONEOBJS) $(LIBPATH) $(LIBS) -o $(EXECUTABLE2)
-
-genrand: $(GENRANDOBJS)
- $(COMPILE) $(GENRANDOBJS) $(LIBPATH) $(LIBS) -o $(EXECUTABLE3)
-
-#
diff --git a/apps/JAWS/clients/WebSTONE/src/README b/apps/JAWS/clients/WebSTONE/src/README
deleted file mode 100755
index 2061342b7ae..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/README
+++ /dev/null
@@ -1,232 +0,0 @@
-README WebStone 2.0 Release version
-
-WARNING: WebStone 2.0 results should not be compared with WebStone 1.1
- results. Even under the same fileset performance will not be
- equivalent.
-
-Please see the notes for 2.0beta6 for quick and dirty install
- This version includes a port of the webstone source code to Windows
-NT. This port is still in progress, so it is not possible to guarantee
-that everything is working correctly - however in our test configurations
-it has performed correctly. Note that the supporting scripts and report
-generating code has not been ported to NT yet.
-
- This version also institutes some basic run rules to eliminate the
-lack of conformity in Webstone performance quotes.
- To report Webstone numbers, some basic rules should be followed:
-
- 1) The fileset used for the test must be the fileset.standard fileset
- included in the distribution. Tests of CGI performance must be
- with the file filelist.cgi-heavy, and tests of NSAPI performance
- must be carried out with filelist.dynamic-heavy
-
- 2) The run time should be set for 10 minutes, and the number of
- clients should vary from 20 clients to 100 clients in increments
- of 10. When a connections/second time is quoted, it must include
- information about the number of clients involved.
-
- 3) Any special TCP/IP tuning which the server has recieved should
- be documented, as well as HTTPD server version and configuration
- information such as logging, DNS lookups and number of threads.
-
-
-README - WebStone 2.0beta6
-
-WARNING: Do not compare WebStone 2.0 results with WebStone 1.0 results.
- WebStone 2.0 introduces significant changes in testing methodology
- and reporting.
-
-This is the WebStone benchmark. Quick and dirty install:
- - set up a Web server
- - put this directory (WebStone) on a seperate machine (the "controller")
- - "./webstone -setup", which does the following:
- - gui-configure
- This script may fail if you don't have a Web browser or
- Perl5. Don't worry, unless you want to use the GUI.
- - autoconf
- If the GNU autoconf fails for your OS, please forward the
- error messages, and any porting hints, to the author.
- - make install
- This may not be necessary, since IRIX binaries are included.
- - edit conf/testbed to reflect your site
- See the doc/FAQ-webstone.html for details.
- - ./webstone -genfiles will put the files in conf/fileset
- onto your Web server.
- - ./webstone
- - to display a table of results: ./webstone -results
-
-If you'd like to try out the GUI for WebStone:
- - run "./webstone -setup", as above.
- - make sure you have a Web browser installed
- - ./configure
- - ./webstone -gui
-
-Files of interest:
- README: This document.
- README.FIRST: Quick and dirty directions.
- README.DynamicWorkload: Information on the CGI and NSAPI workloads.
- webstone: wrapper shell script for everything.
- Takes options:
- -gui: start the GUI mode
- -kill: kill stray WebStone processes
- -genfiles: build files (from conf/fileset)
- and rcp onto the server $SERVER
- - results: print table of results
- -setup: initial make and setup
- -silent: runs in the background
- -tail: tail -f of most recent run
-
-Files of interest (./src):
- Makefile, *.c, *.h: The Webstone source code
-
-Files of interest (./bin):
- checkfilelist: uses rsh to check web server for files in filelist.
- genfiles, genrand: generates files of arbitrary length.
- getstats: Collects network statistics from Web server, clients.
- killbench: terminates stray WebStone processes.
- rebootall: reboots all WebStone webclients.
- runbench: wrapper script for WebStone.
- webmaster: WebStone controller executable.
- webstone: WebStone client executable.
- wscollect: reports results in tabular format.
-
-Files of interest (./conf):
- filelist: default list of files on the Web server,
- with workload description.
- filelist.photo: Model of a popular Web site
- containing photographic images.
- filelist.ss: Model of SGI's Silicon Surf WWW site.
- fileset: list of files for genfiles to create.
- testbed: config file describing Web server, client, and network setup.
-
-Documentation (./doc):
- FAQ.html: The FAQ, current as of this distribution.
- LICENSE: Legal status of WebStone.
- testbed.help: Explains the parameters in conf/testbed.
- webstone-white-paper.ps: The original WebStone white paper.
- webstone.gif: The WebStone logo.
-
-Additional documentation:
- FAQ.html: Frequently Asked Questions, with answers
- webstone.ps: PostScript white paper on WebStone
-
-Problems, etc. may be addressed to the WebStone mailing list.
-Read the FAQ for details.
-
-Release Notes (2.0 beta6):
- * fixed a bug for Web servers not on port 80
- * further changes to bin/wscollect.pl
-
-Release Notes (2.0 beta5):
- * numerous minor fixes suggested by gcc -Wall -pedantic
- * updated FAQ
- * changed bin/wscollect.pl to use Perl formats
-
-Release Notes (2.0 beta4):
- * added #include <sys/time.h> to bench.h
- * changed webclient located to $TMPDIR - this should help people
- who don't want to run WebStone as root
- * changed check for libm to floor() instead of sqrt(). Apparently
- some systems implement sqrt() in libc - let's hope no one implement
- floor() in libc and sqrt() in libm!
-
-Release Notes (2.0 beta3):
- * more portability fixes
- * successfully compiled on FreeBSD 2.2, IRIX without any source
- changes
-
-Release Notes (2.0 beta2):
- * additional timezone fixes for SunOS
-
-Release Notes (2.0 beta1):
- * fixed a bug in the rexec portion of webmaster.c
- * fixed a bug in the usage() routine of webmaster.c
- * added bin/genfiles-from-filelist.sh
- - bin/genfiles-from-filelist.sh <filename>
- - generates appropriate-length files from <filename>
- - <filename> must contain three fields:
- <relative URL> <weight> #<size in bytes>
- example: /file.html 1 #1024
- * added bin/mine-logs.pl
- - usage: mine-logs.pl <filename>
- where <filename> is an http server log file
- - writes a WebStone workload to standard output
-
-Release Notes (2.0 alpha5):
- * revised default testbed file
- * changed wscollect to wscollect.pl for consistency
- * changed webstone-gui to webstone-gui.pl for consistency
- * added some NT porting hints
- * added autoconf, which should help Linux and SunOS porting
-
-Release Notes (2.0 alpha4):
- * added SunOS and Linux portability elements
- * new scheme for random access to pages
- * converted several static arrays to dynamic pointers
-
-Release Notes (2.0 alpha2):
- * fixed per-page statistics
- * new, client-independent data-passing scheme
- * added support for proxy servers
-
-Release Notes (2.0 alpha1):
- * new filelist scheme - however, this breaks per-page statistics
- * minor fixes
-
-Release Notes (1.1):
- * Improved webclient performance by combining GET and ACCEPT
- HTTP headers in one write() call.
- * Improved webclient performance on systems that always attempt
- to map protocol names to numbers using YP.
- * WARNING: since the old code introduced a significant latency
- in some systems, DO NOT compare WebStone 1.1 results
- with results generated by any previous versions.
-
-Release Notes (1.0.3):
- * Netscape Server 1.1.2 exposed a couple bugs, which I've now fixed.
-
-Release Notes (1.0.2):
- * Fixed runbench so that ITERATIONS, MINCLIENTS, and MAXCLIENTS don't
- have to have a common denominator any more.
- * Fixed a few cosmetic bugs.
-
-Release Notes (1.0.1):
- * Fixed select() bug in webmaster
-
-Release Notes (1.0 final):
- * Fixed the "Error reading 2nd timing info" bug
- * Fixed numerous bugs in the GUI
- * Froze feature set. Work can now begin on WebStone 1.1
-
-Release Notes (1.0b3):
- * New Web browser GUI
- NOTE: most Web browsers take up substantial CPU time.
- If you run the GUI, we recommend that you make the controller
- a separate machine, and don't run any WebStone clients on it.
- * Minor bug fixes
- Squashed some dubious error messages, fixed some client-
- controller communications problems.
- * Reporting changes
- Changes the units and order of the final summary statistics.
- Basically, this is for my own convenience, so I don't have to
- massage the data quite so much before using it. wscollect
- now reports only the metrics I regard as important - but all
- metrics are still reported in the runs/*/run files.
-
-LEGAL STUFF:
-
-This file and all files contained in this directory are
-copyright 1995, Silicon Graphics, Inc.
-
-This software is provided without support and without any obligation on the
-part of Silicon Graphics, Inc. to assist in its use, correction, modification
-or enhancement. There is no guarantee that this software will be included in
-future software releases, and it probably will not be included.
-
-THIS SOFTWARE IS PROVIDED "AS IS" WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE,
-OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-
-In no event will Silicon Graphics, Inc. be liable for any lost revenue or
-profits or other special, indirect and consequential damages, even if
-Silicon Graphics, Inc. has been advised of the possibility of such damages.
diff --git a/apps/JAWS/clients/WebSTONE/src/acconfig.h b/apps/JAWS/clients/WebSTONE/src/acconfig.h
deleted file mode 100644
index ea85c00c0ba..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/acconfig.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Special definitions for autoheader
- Copyright (C) 1995 Silicon Graphics, Inc.
-$Header$
-*/
-
-/* Define to the name of the distribution. */
-#undef PRODUCT
-
-/* Define to the version of the distribution. */
-#undef VERSION
-
-/* Should we use timezone in gettimeofday? */
-#undef USE_TIMEZONE
-
-/* end */
diff --git a/apps/JAWS/clients/WebSTONE/src/bench.c b/apps/JAWS/clients/WebSTONE/src/bench.c
deleted file mode 100644
index 48007321f23..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/bench.c
+++ /dev/null
@@ -1,632 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-#include <stdio.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <math.h>
-#include <limits.h>
-#include <float.h>
-#ifndef WIN32
-#include <unistd.h>
-#include <sys/time.h>
-#include <sys/uio.h>
-#include <sys/param.h>
-#include <netdb.h>
-#else
-#include <windows.h>
-#include <winsock.h>
-#endif /* WIN32 */
-#include "sysdep.h"
-#include "bench.h"
-
-
-/* allocate memory and exit if out of memory */
-void *mymalloc(size_t size) {
-void *ptr;
-
- ptr = malloc(size);
- if (ptr == NULL)
- errexit("Call to malloc() failed\n");
- return ptr;
-}
-
-/*
- * Receive n bytes from a socket
- */
-int
-recvdata(SOCKET sock, char *ptr, int nbytes) {
-
- int nleft, nread;
-
- nleft = nbytes;
- while (nleft > 0)
- {
- D_PRINTF( "In recvdata(%d, %d)\n", sock, nleft );
- nread = NETREAD(sock, ptr, nleft);
- D_PRINTF( "NETREAD() returned %d\n", nread );
- if (BADSOCKET(nread) || nread == 0)
- {
- /* return error value NETWRITE */
- D_PRINTF( "Error in recvdata(): %s\n",neterrstr() );
- return(nread);
- }
-
- D_PRINTF( "NETREAD() data: \"%.*s\"\n", nread, ptr);
- nleft -= nread;
- ptr += nread;
- } /* end while */
-
- /* return >= 0 */
- return(nbytes - nleft);
-
-} /* end recvdata */
-
-
-/*
- * Send n bytes to a socket
- */
-int
-senddata(SOCKET sock, char *ptr, int nbytes) {
- int nleft, nwritten;
-
- D_PRINTF( "In senddata(%d, \"%.*s\", %d)\n", sock, nbytes, ptr, nbytes );
- nleft = nbytes;
- while (nleft > 0)
- {
- nwritten = NETWRITE(sock, ptr, nleft);
- D_PRINTF( "senddata() returned %d\n", nwritten );
- if (BADSOCKET(nwritten))
- {
- /* return error value from NETWRITE */
- D_PRINTF( "Error in senddata(): %s\n", neterrstr() );
- return(nwritten);
- }
- nleft -= nwritten;
- ptr += nwritten;
- }
- return(nbytes - nleft);
-
-} /* end senddata */
-
-/* GENERAL NOTE: the conversion routines that follow pass their results
- * back in a static arrays. A second call to the same routine overwrites
- * the previous buffer value for that routine. If you want to save the
- * value in the buffer copy it to another variable.
- */
-
-char *
-timeval_to_text(const struct timeval *the_timeval) {
- /*
- * given a timeval (seconds and microseconds), put the text
- * "seconds.microseconds" into timeval_as_text
- */
- THREAD static char timeval_as_text[SIZEOF_TIMEVALTEXT+1];
- int seconds, microseconds;
- int returnval = 0;
-
- seconds = the_timeval->tv_sec;
- microseconds = the_timeval->tv_usec;
- returnval = sprintf(timeval_as_text,
- "%10d.%6.6d\t", seconds, microseconds);
- return timeval_as_text;
-}
-
-
-char *
-double_to_text(const double the_double) {
- /*
- * given a double, return text
- */
- THREAD static char double_as_text[SIZEOF_DOUBLETEXT + 1];
- int returnval = 0;
-
- returnval = sprintf(double_as_text, "%17.01f\t", the_double);
- return(double_as_text);
-}
-
-struct timeval
-text_to_timeval(char *timeval_as_text) {
- int returnval = 0;
- long int seconds, microseconds;
- struct timeval the_timeval;
-
- D_PRINTF("T/%d %s\n", (int)timeval_as_text, timeval_as_text);
- returnval = sscanf(timeval_as_text, "%ld.%ld",
- &seconds, &microseconds);
- the_timeval.tv_sec = seconds;
- the_timeval.tv_usec = microseconds;
- return the_timeval;
-}
-
-double
-text_to_double(char *double_as_text) {
- double the_double = 0;
- int returnval = 0;
-
- D_PRINTF("D/%d %s\n", (int)double_as_text, double_as_text);
- returnval = sscanf(double_as_text, "%lf", &the_double);
- return(the_double);
-}
-
-
-rqst_stats_t *
-text_to_rqst_stats(char *rqst_stats_as_text) {
- THREAD static rqst_stats_t rqst_stats;
- rqst_stats_t *the_rqst_stats = &rqst_stats;
-
- the_rqst_stats->totalresponsetime =
- text_to_timeval(strtok(rqst_stats_as_text, "\t"));
-
- the_rqst_stats->totalresponsetimesq =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->minresponsetime =
- text_to_timeval(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->maxresponsetime =
- text_to_timeval(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalconnecttime =
- text_to_timeval(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalconnecttimesq =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->minconnecttime =
- text_to_timeval(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->maxconnecttime =
- text_to_timeval(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalconnects = (unsigned long)
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalerrs = (unsigned long)
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalerrortime =
- text_to_timeval(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalbytes =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalbytessq =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->minbytes =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->maxbytes =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalbody =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->totalbodysq =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->minbody =
- text_to_double(strtok((char *)NULL, "\t"));
-
- the_rqst_stats->maxbody =
- text_to_double(strtok((char *)NULL, "\t"));
-
- return(the_rqst_stats);
-} /* end text_to_rqst_stats */
-
-
-char *
-rqst_stats_to_text(rqst_stats_t *the_rqst_stats) {
- THREAD static char rqst_stats_as_text[SIZEOF_RQSTSTATSTEXT];
- char *tmpbuf;
-
- *rqst_stats_as_text = 0;
-
- tmpbuf = timeval_to_text(&(the_rqst_stats->totalresponsetime));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalresponsetimesq));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_rqst_stats->minresponsetime));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_rqst_stats->maxresponsetime));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_rqst_stats->totalconnecttime));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalconnecttimesq));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_rqst_stats->minconnecttime));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_rqst_stats->maxconnecttime));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalconnects));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalerrs));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_rqst_stats->totalerrortime));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalbytes));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalbytessq));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->minbytes));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->maxbytes));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalbody));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->totalbodysq));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->minbody));
- strcat(rqst_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_rqst_stats->maxbody));
- strcat(rqst_stats_as_text, tmpbuf);
-
- D_PRINTF( "rqst_stats_to_text returning %d: %s\n",
- strlen(rqst_stats_as_text),
- rqst_stats_as_text );
-
- return(rqst_stats_as_text);
-}
-
-
-stats_t *
-text_to_stats(char *stats_as_text) {
- int i;
- rqst_stats_t *the_rqst_stats;
- THREAD static stats_t stats;
- stats_t *the_stats = &stats;
-
- D_PRINTF( "Parsing stats: %s\n", stats_as_text );
- /* grab stats.rs */
- the_rqst_stats = text_to_rqst_stats(stats_as_text);
- the_stats->rs = *the_rqst_stats;
-
- /* grab main structure */
- the_stats->starttime = text_to_timeval(strtok((char *)NULL, "\t"));
- the_stats->endtime = text_to_timeval(strtok((char *)NULL, "\t"));
- the_stats->datatime = text_to_timeval(strtok((char *)NULL, "\t"));
- the_stats->totalpages = (unsigned long) text_to_double(strtok((char *)NULL, "\t"));
- the_stats->total_num_of_files = (unsigned int) text_to_double(strtok((char *)NULL, "\t"));
- for (i = 0; i < number_of_pages; i++)
- {
- the_stats->page_numbers[i] = (unsigned int) text_to_double(strtok((char *)NULL, "\t"));
- }
- /* return bytes read */
- D_PRINTF( "Returning stats\n");
- return(the_stats);
-} /* end text_to_stats */
-
-
-
-char *
-stats_to_text(const stats_t *the_stats) {
- int i;
- THREAD static char stats_as_text[SIZEOF_STATSTEXT];
- char *tmpbuf;
- rqst_stats_t the_rqst_stats;
-
- *stats_as_text = 0;
-
- /* stats.rs */
- the_rqst_stats = the_stats->rs;
- tmpbuf = rqst_stats_to_text(&the_rqst_stats);
- strcat(stats_as_text, tmpbuf);
-
- /* main structure */
-
- tmpbuf = timeval_to_text(&(the_stats->starttime));
- strcat(stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_stats->endtime));
- strcat(stats_as_text, tmpbuf);
-
- tmpbuf = timeval_to_text(&(the_stats->datatime));
- strcat(stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_stats->totalpages));
- strcat(stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text((the_stats->total_num_of_files));
- strcat(stats_as_text, tmpbuf);
-
- for (i = 0; i < number_of_pages; i++)
- {
- tmpbuf = double_to_text((the_stats->page_numbers[i]));
- strcat(stats_as_text, tmpbuf);
- }
-
- strcat(stats_as_text, "\n");
-
- return(stats_as_text);
-} /* end stats_to_text */
-
-
-
-page_stats_t *
-text_to_page_stats(char *page_stats_as_text) {
- rqst_stats_t *the_rqst_stats;
- THREAD static page_stats_t pagestat;
- page_stats_t *pagestats = &pagestat;
-
- /* grab stats.rs */
- the_rqst_stats = text_to_rqst_stats(page_stats_as_text);
-
- /* grab main structure */
- pagestats->totalpages = (unsigned long) text_to_double(strtok((char *)NULL, "\t"));
-
- pagestats->page_size = (unsigned int) text_to_double(strtok((char *)NULL, "\t"));
-
- pagestats->page_valid = (int) text_to_double(strtok((char *)NULL, "\t"));
-
- pagestats->rs = *the_rqst_stats;
- /* return bytes read */
-
- return(pagestats);
-} /* end text_to_page_stats */
-
-
-
-char *
-page_stats_to_text(const page_stats_t *pagestats) {
- THREAD static char page_stats_as_text[SIZEOF_PAGESTATSTEXT];
- char *tmpbuf;
- rqst_stats_t the_rqst_stats;
-
- *page_stats_as_text = 0;
-
- /* stats.rs */
- the_rqst_stats = pagestats->rs;
- tmpbuf = rqst_stats_to_text(&the_rqst_stats);
- strcat(page_stats_as_text, tmpbuf);
-
- /* main structure */
- tmpbuf = double_to_text(pagestats->totalpages);
- strcat(page_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text(pagestats->page_size);
- strcat(page_stats_as_text, tmpbuf);
-
- tmpbuf = double_to_text(pagestats->page_valid);
- strcat(page_stats_as_text, tmpbuf);
-
- strcat(page_stats_as_text, "\n");
-
- return(page_stats_as_text);
-} /* end page_stats_to_text */
-
-void
-rqtimer_init(rqst_timer_t *p) {
- memset(p, 0, sizeof(*p));
-}
-
-void
-rqstat_init(rqst_stats_t *p) {
- memset(p, 0, sizeof(*p));
-
- p->minbytes = DBL_MAX;
- p->minbody = DBL_MAX;
- p->minconnecttime.tv_sec = LONG_MAX;
- p->minconnecttime.tv_usec = LONG_MAX;
- p->minresponsetime.tv_sec = LONG_MAX;
- p->minresponsetime.tv_usec = LONG_MAX;
-}
-
-void
-stats_init(stats_t *p) {
-
- memset(p, 0, sizeof(*p));
-
- p->rs.minbytes = DBL_MAX;
- p->rs.minbody = DBL_MAX;
- p->rs.minconnecttime.tv_sec = LONG_MAX;
- p->rs.minconnecttime.tv_usec = LONG_MAX;
- p->rs.minresponsetime.tv_sec = LONG_MAX;
- p->rs.minresponsetime.tv_usec = LONG_MAX;
-}
-
-void
-page_stats_init(page_stats_t *p) {
-
- memset(p, 0, sizeof(*p));
-
- /* commented out so that unread pages result in
- page_stats_as_text buffer overflow
- p->rs.minbytes = DBL_MAX;
- p->rs.minbody = DBL_MAX;
- p->rs.minconnecttime.tv_sec = LONG_MAX;
- p->rs.minconnecttime.tv_usec = LONG_MAX;
- p->rs.minresponsetime.tv_sec = LONG_MAX;
- p->rs.minresponsetime.tv_usec = LONG_MAX;
-
- */
-}
-
-void
-rqstat_times(rqst_stats_t *rs, rqst_timer_t *rt)
-{
- double t;
-
- compdifftime(&(rt->exittime), &(rt->entertime),
- &(rs->totalresponsetime));
- t = timevaldouble(&(rs->totalresponsetime));
- rs->totalresponsetimesq = t * t;
-
- rs->minresponsetime = rs->totalresponsetime;
- rs->maxresponsetime = rs->totalresponsetime;
-
- compdifftime(&(rt->afterconnect), &(rt->beforeconnect),
- &(rs->totalconnecttime));
-
- t = timevaldouble(&(rs->totalconnecttime));
- rs->totalconnecttimesq = t * t;
-
- rs->minconnecttime = rs->totalconnecttime;
- rs->maxconnecttime = rs->totalconnecttime;
-
- rs->totalbody = rt->bodybytes;
- rs->totalbodysq = ((double)(rt->bodybytes)) * ((double)(rt->bodybytes));
- rs->minbody = rt->bodybytes;
- rs->maxbody = rt->bodybytes;
-
- rs->totalbytes = rt->totalbytes;
- rs->totalbytessq = ((double)(rt->totalbytes)) * ((double)(rt->totalbytes));
- rs->minbytes = rt->totalbytes;
- rs->maxbytes = rt->totalbytes;
-
- rs->totalconnects = 1;
- rs->totalerrs = 0;
- rs->totalerrortime.tv_sec = 0;
- rs->totalerrortime.tv_usec = 0;
-}
-
-void
-rqstat_sum(rqst_stats_t *sum, rqst_stats_t *incr)
-{
- addtime( &(sum->totalresponsetime), &(incr->totalresponsetime));
- mintime( &(sum->minresponsetime), &(incr->minresponsetime));
- maxtime( &(sum->maxresponsetime), &(incr->maxresponsetime));
- sum->totalresponsetimesq += incr->totalresponsetimesq;
-
- addtime( &(sum->totalconnecttime), &(incr->totalconnecttime));
- mintime( &(sum->minconnecttime), &(incr->minconnecttime));
- maxtime( &(sum->maxconnecttime), &(incr->maxconnecttime));
- sum->totalconnecttimesq += incr->totalconnecttimesq;
-
- sum->totalconnects += incr->totalconnects;
- sum->totalerrs += incr->totalerrs;
- addtime( &(sum->totalerrortime), &(incr->totalerrortime));
-
- sum->totalbytes += incr->totalbytes;
-
- sum->totalbytessq += incr->totalbytessq;
- sum->minbytes = min(sum->minbytes, incr->minbytes);
- sum->maxbytes = max(sum->maxbytes, incr->maxbytes);
-
- sum->totalbody += incr->totalbody;
-
- sum->totalbodysq += incr->totalbodysq;
- sum->minbody = min(sum->minbody, incr->minbody);
- sum->maxbody = max(sum->maxbody, incr->maxbody);
-
-}
-
-
-void
-rqstat_print(rqst_stats_t *stats)
-{
- rqstat_fprint(stdout, stats);
-}
-
-
-void
-rqstat_fprint(FILE *f, rqst_stats_t *stats)
-{
- struct timeval meantime, /*vartime,*/ stdtime;
-
- fprintf(f, "%d connection(s) to server, %d errors\n",
- stats->totalconnects, stats->totalerrs);
-
- if (stats->totalconnects == 0) {
- fprintf(f,"NO CONNECTIONS, THEREFORE NO STATISTICS\n"
- "IS YOUR WEBSERVER RUNNING?\n"
- "DO THE PAGES EXIST ON THE SERVER?\n");
- return;
- }
-
- /* title */
- fprintf(f, "\n\t\t\t Average Std Dev Minimum Maximum\n\n");
-
- /* first line (connect time) */
- avgtime(&(stats->totalconnecttime),
- stats->totalconnects, &meantime);
-
- /* variancetime(&(stats->totalconnecttime),
- stats->totalconnecttimesq,
- stats->totalconnects, &vartime); */
-
- stddevtime(&(stats->totalconnecttime),
- stats->totalconnecttimesq,
- stats->totalconnects, &stdtime);
-
- fprintf(f, "Connect time (sec) \t%3d.%6.6d %3d.%6.6d %3d.%6.6d %3d.%6.6d\n",
- meantime.tv_sec,
- meantime.tv_usec,
- stdtime.tv_sec,
- stdtime.tv_usec,
- stats->minconnecttime.tv_sec,
- stats->minconnecttime.tv_usec,
- stats->maxconnecttime.tv_sec,
- stats->maxconnecttime.tv_usec);
-
- /* second line (response time) */
- avgtime(&(stats->totalresponsetime),
- stats->totalconnects, &meantime);
-
- /* variancetime(&(stats->totalresponsetime),
- stats->totalresponsetimesq,
- stats->totalconnects, &vartime); */
-
- stddevtime(&(stats->totalresponsetime),
- stats->totalresponsetimesq,
- stats->totalconnects, &stdtime);
-
- fprintf(f, "Response time (sec) \t%3d.%6.6d %3d.%6.6d %3d.%6.6d %3d.%6.6d\n",
- meantime.tv_sec,
- meantime.tv_usec,
- stdtime.tv_sec,
- stdtime.tv_usec,
- stats->minresponsetime.tv_sec,
- stats->minresponsetime.tv_usec,
- stats->maxresponsetime.tv_sec,
- stats->maxresponsetime.tv_usec);
-
- /* 3rd-5th lines (response size, body size, # bytes moved */
- fprintf(f, "Response size (bytes) \t%10.0lf %10.0lf %10.0lf %10.0lf\n",
- mean(stats->totalbytes, stats->totalconnects),
- stddev(stats->totalbytes, stats->totalbytessq,
- stats->totalconnects),
- stats->minbytes,
- stats->maxbytes);
-
- fprintf(f, "Body size (bytes) \t%10.0lf %10.0lf %10.0lf %10.0lf\n\n",
- mean(stats->totalbody, stats->totalconnects),
- stddev(stats->totalbody, stats->totalbodysq,
- stats->totalconnects),
- stats->minbody,
- stats->maxbody);
-
- fprintf(f, "%.0lf body bytes moved + %.0lf header bytes moved = %.0lf total\n",
- stats->totalbody,
- stats->totalbytes - stats->totalbody,
- stats->totalbytes);
-
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/bench.h b/apps/JAWS/clients/WebSTONE/src/bench.h
deleted file mode 100644
index 069bf3c1694..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/bench.h
+++ /dev/null
@@ -1,273 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-#ifndef __BENCH_H__
-#define __BENCH_H__
-#include <stdio.h>
-#include <stdarg.h>
-#ifndef WIN32
-#include <sys/time.h>
-#endif /* WIN32 */
-
-#define USECINSEC 1000000
-#define MSECINSEC 1000
-#define MAX_ACCEPT_SECS 180 /* maximum time master will wait for listen() */
-
-#define NCCARGS 4096
-#define MAXCLIENTS 1024
-#define MAXUSERNAME 25
-#define MAXPASSWD 20
-#define BUFSIZE 4096
-
-#define MAXTOTALPROCS MAXCLIENTS /* overall max # of procs */
-#define MAXPROCSPERNODE MAXCLIENTS /* max # of procs/node */
-
-
-#define CONTENT_LENGTH_STRING "CONTENT-LENGTH:"
-#define OKSTR "OK"
-#define OKSTRLEN ((int)strlen(OKSTR))
-#define GOSTR "GO"
-#define GOSTRLEN ((int)strlen(GOSTR))
-#define READYSTR "READY"
-#define READYSTRLEN ((int)strlen(READYSTR))
-#define ABORTSTR "ABORT"
-#define ABORTSTRLEN ((int)strlen(ABORTSTR))
-
-
-#define MAXNUMOFFILES 1 /* max # of files per page */
-#define URL_SIZE 1024
-#define MAXNUMOFPAGES 100
-#define SIZEOF_TIMEVALTEXT 18
-#define SIZEOF_DOUBLETEXT 18
-#define SIZEOF_RQSTSTATSTEXT ((7 * SIZEOF_TIMEVALTEXT) + \
- (12 * SIZEOF_DOUBLETEXT) + 1)
-#define SIZEOF_STATSTEXTBASE (SIZEOF_RQSTSTATSTEXT + \
- (3 * SIZEOF_TIMEVALTEXT) + \
- (2 * SIZEOF_DOUBLETEXT) + 1)
-#define SIZEOF_STATSTEXT (SIZEOF_STATSTEXTBASE + MAXNUMOFPAGES * SIZEOF_DOUBLETEXT)
-#define SIZEOF_PAGESTATSTEXT (SIZEOF_RQSTSTATSTEXT + \
- (0 * SIZEOF_TIMEVALTEXT) + \
- (3 * SIZEOF_DOUBLETEXT) + 1)
-
-#define D_PRINTF debug && d_printf
-
-#ifdef USE_TIMEZONE
-typedef struct rqst_timer {
- struct timeval entertime;
- struct timezone entertimezone;
- struct timeval beforeconnect;
- struct timezone beforeconnectzone;
- struct timeval afterconnect;
- struct timezone afterconnectzone;
- struct timeval beforeheader;
- struct timezone beforeheaderzone;
- struct timeval afterheader;
- struct timezone afterheaderzone;
- struct timeval afterbody;
- struct timezone afterbodyzone;
- struct timeval exittime;
- struct timezone exittimezone;
- long unsigned int totalbytes;
- long unsigned int bodybytes;
- int valid;
- long unsigned int page_number;
-} rqst_timer_t;
-#else
-typedef struct rqst_timer {
- struct timeval entertime;
- struct timeval beforeconnect;
- struct timeval afterconnect;
- struct timeval beforeheader;
- struct timeval afterheader;
- struct timeval afterbody;
- struct timeval exittime;
- long unsigned int totalbytes;
- long unsigned int bodybytes;
- int valid;
- long unsigned int page_number;
-} rqst_timer_t;
-#endif /* USE_TIMEZONE */
-
-extern void rqtimer_init(rqst_timer_t *);
-
-#ifdef USE_TIMEZONE
-typedef struct rqst_stats {
- struct timeval totalresponsetime;
- struct timezone totalresponsetimezone;
- double totalresponsetimesq;
- struct timeval minresponsetime;
- struct timezone minresponsetimezone;
- struct timeval maxresponsetime;
- struct timezone maxresponsetimezone;
- struct timeval totalconnecttime;
- struct timezone totalconnecttimezone;
- double totalconnecttimesq;
- struct timeval minconnecttime;
- struct timezone minconnecttimezone;
- struct timeval maxconnecttime;
- struct timezone maxconnecttimezone;
- long unsigned int totalconnects;
- long unsigned int totalerrs;
- struct timeval totalerrortime;
- struct timezone totalerrortimezone;
- double totalbytes;
- double totalbytessq;
- double minbytes;
- double maxbytes;
- double totalbody;
- double totalbodysq;
- double minbody;
- double maxbody;
-} rqst_stats_t;
-#else
-typedef struct rqst_stats {
- struct timeval totalresponsetime;
- double totalresponsetimesq;
- struct timeval minresponsetime;
- struct timeval maxresponsetime;
- struct timeval totalconnecttime;
- double totalconnecttimesq;
- struct timeval minconnecttime;
- struct timeval maxconnecttime;
- long unsigned int totalconnects;
- long unsigned int totalerrs;
- struct timeval totalerrortime;
- double totalbytes;
- double totalbytessq;
- double minbytes;
- double maxbytes;
- double totalbody;
- double totalbodysq;
- double minbody;
- double maxbody;
-} rqst_stats_t;
-#endif /* USE_TIMEZONE */
-
-extern void rqstat_init(rqst_stats_t *);
-extern void rqstat_sum(rqst_stats_t *, rqst_stats_t *);
-extern void rqstat_print(rqst_stats_t *);
-extern void rqstat_fprint(FILE *, rqst_stats_t *);
-extern void rqstat_times(rqst_stats_t *, rqst_timer_t *);
-
-#ifdef USE_TIMEZONE
-typedef struct stats {
- /* char hostname[MAXHOSTNAMELEN]; */
- rqst_stats_t rs;
- struct timeval starttime;
- struct timezone starttimezone;
- struct timeval endtime;
- struct timezone endtimezone;
- struct timeval datatime;
- struct timezone datatimezone;
- long unsigned int totalpages;
- unsigned int total_num_of_files;
- unsigned int page_numbers[MAXNUMOFPAGES];
-} stats_t;
-#else
-typedef struct stats {
- /* char hostname[MAXHOSTNAMELEN]; */
- rqst_stats_t rs;
- struct timeval starttime;
- struct timeval endtime;
- struct timeval datatime;
- long unsigned int totalpages;
- unsigned int total_num_of_files;
- unsigned int page_numbers[MAXNUMOFPAGES];
-} stats_t;
-#endif /* USE_TIMEZONE */
-
-extern void stats_init(stats_t *);
-extern stats_t * text_to_stats(char *);
-extern char * stats_to_text(const stats_t *);
-
-typedef struct page_stats {
- rqst_stats_t rs;
- long unsigned int totalpages;
- unsigned int page_size;
- int page_valid;
-} page_stats_t;
-
-extern void page_stats_init(page_stats_t *);
-extern page_stats_t * text_to_page_stats(char *);
-extern char * page_stats_to_text(const page_stats_t *);
-
-/* THIS STRUCTURE DEFINES A PAGE. */
-typedef struct page_list {
- int load_num;
- int num_of_files;
- char *(filename[MAXNUMOFFILES]);
- char *(servername[MAXNUMOFFILES]);
- int port_number[MAXNUMOFFILES];
-}page_list_t;
-
-
-
-/* shared variables */
-extern THREAD FILE *debugfile;
-extern int debug;
-
-extern int savefile;
-extern int timeexpired;
-extern long int number_of_pages;
-
-/* routines in bench.c */
-
-extern void *mymalloc(size_t size);
-extern int recvdata(SOCKET sock, char *ptr, int nbytes);
-extern int senddata(SOCKET sock, char *ptr, int nbytes);
-extern void rqstat_times(rqst_stats_t *rs, rqst_timer_t *rt);
-/* note several others listed above */
-
-/* routines in errexit.c */
-
-void errexit(const char *, ...);
-extern int returnerr(const char *, ...);
-extern int d_printf(const char *, ...);
-extern char *neterrstr(void);
-
-/* routines in get.c */
-
-extern int get(char *loc, NETPORT port, char *url, rqst_timer_t *timer);
-
-/* routines in parse_file_list.c */
-
-extern int count_file_list(const char *url_list_file);
-extern void parse_file_list (const char *url_list_file, page_list_t *page_list,
- long int *num_of_pages, long int *num_of_files);
-extern long int load_percent(page_list_t *page_list, long int number_of_pages);
-
-/* routines in statistics.c (formerly statistics.h) */
-
-extern double mean(const double, const int);
-extern double variance(const double, const double, const int);
-extern double stddev(const double, const double, const int);
-
-/* routines in timefunc.c (formerly timefunc.h) */
-
-extern double timevaldouble(struct timeval *);
-extern void doubletimeval(const double, struct timeval *);
-
-extern void addtime(struct timeval *, struct timeval *);
-extern void compdifftime(struct timeval *, struct timeval *, struct timeval *);
-extern void mintime(struct timeval *, struct timeval *);
-extern void maxtime(struct timeval *, struct timeval *);
-extern void avgtime(struct timeval *, int, struct timeval *);
-extern void variancetime(struct timeval *, double, int, struct timeval *);
-extern void stddevtime(struct timeval *, double, int, struct timeval *);
-
-extern void sqtime(struct timeval *, struct timeval *);
-
-extern double thruputpersec(const double, struct timeval *);
-
-/* routines in webclient.c */
-
-extern SOCKET connectsock(char *host, NETPORT portnum, char *protocol);
-
-#endif /* !__BENCH_H__ */
diff --git a/apps/JAWS/clients/WebSTONE/src/cgi-send b/apps/JAWS/clients/WebSTONE/src/cgi-send
deleted file mode 100755
index bc9be6561a8..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/cgi-send
+++ /dev/null
Binary files differ
diff --git a/apps/JAWS/clients/WebSTONE/src/cgi-send.c b/apps/JAWS/clients/WebSTONE/src/cgi-send.c
deleted file mode 100644
index 5e1641694af..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/cgi-send.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Send 10K file; send random bits.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#define FILE_SIZE 10240
-#define MALLOC_FAILURE "Out of memory"
-
-int
-main()
-{
- int filesize;
- char *str_filesize;
- char *buffer;
- int index;
-
- printf("Content-type: text/plain\r\n\r\n");
-
- if ( !(str_filesize = getenv("QUERY_STRING")) )
- filesize = FILE_SIZE;
- else {
- if ( !strncmp(str_filesize, "size=", 5) )
- filesize = atoi(&(str_filesize[5]));
- else
- filesize = FILE_SIZE;
- }
-
- if ( !(buffer = (char *)malloc(filesize)) ) {
- fwrite(MALLOC_FAILURE, strlen(MALLOC_FAILURE), 1, stdout);
- return -1;
- }
-
- for (index=0; index< filesize; index++)
- /* generate random characters from A-Z */
- buffer[index] = rand() %26 + 63;
-
- fwrite(buffer, filesize, 1, stdout);
-
- free(buffer);
-
- return 0;
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/client/webclient.mak b/apps/JAWS/clients/WebSTONE/src/client/webclient.mak
deleted file mode 100755
index f7c492da2a8..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/client/webclient.mak
+++ /dev/null
@@ -1,479 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-!IF "$(CFG)" == ""
-CFG=webclient - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to webclient - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "webclient - Win32 Release" && "$(CFG)" !=\
- "webclient - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "webclient.mak" CFG="webclient - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "webclient - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "webclient - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "webclient - Win32 Debug"
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "webclient - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "WinRel"
-# PROP BASE Intermediate_Dir "WinRel"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "WinRel"
-# PROP Intermediate_Dir "WinRel"
-OUTDIR=.\WinRel
-INTDIR=.\WinRel
-
-ALL : "$(OUTDIR)\webclient.exe" "$(OUTDIR)\webclient.bsc"
-
-CLEAN :
- -@erase "$(INTDIR)\bench.obj"
- -@erase "$(INTDIR)\bench.sbr"
- -@erase "$(INTDIR)\errexit.obj"
- -@erase "$(INTDIR)\errexit.sbr"
- -@erase "$(INTDIR)\get.obj"
- -@erase "$(INTDIR)\get.sbr"
- -@erase "$(INTDIR)\getopt.obj"
- -@erase "$(INTDIR)\getopt.sbr"
- -@erase "$(INTDIR)\gettimeofday.obj"
- -@erase "$(INTDIR)\gettimeofday.sbr"
- -@erase "$(INTDIR)\parse_file_list.obj"
- -@erase "$(INTDIR)\parse_file_list.sbr"
- -@erase "$(INTDIR)\statistics.obj"
- -@erase "$(INTDIR)\statistics.sbr"
- -@erase "$(INTDIR)\sysdep.obj"
- -@erase "$(INTDIR)\sysdep.sbr"
- -@erase "$(INTDIR)\timefunc.obj"
- -@erase "$(INTDIR)\timefunc.sbr"
- -@erase "$(INTDIR)\webclient.obj"
- -@erase "$(INTDIR)\webclient.sbr"
- -@erase "$(OUTDIR)\webclient.bsc"
- -@erase "$(OUTDIR)\webclient.exe"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FR /YX /c
-# ADD CPP /nologo /MTd /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /FR /YX /c
-CPP_PROJ=/nologo /MTd /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_CONSOLE"\
- /FR"$(INTDIR)/" /Fp"$(INTDIR)/webclient.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\WinRel/
-CPP_SBRS=.\WinRel/
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/webclient.bsc"
-BSC32_SBRS= \
- "$(INTDIR)\bench.sbr" \
- "$(INTDIR)\errexit.sbr" \
- "$(INTDIR)\get.sbr" \
- "$(INTDIR)\getopt.sbr" \
- "$(INTDIR)\gettimeofday.sbr" \
- "$(INTDIR)\parse_file_list.sbr" \
- "$(INTDIR)\statistics.sbr" \
- "$(INTDIR)\sysdep.sbr" \
- "$(INTDIR)\timefunc.sbr" \
- "$(INTDIR)\webclient.sbr"
-
-"$(OUTDIR)\webclient.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# SUBTRACT LINK32 /profile
-LINK32_FLAGS=wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no\
- /pdb:"$(OUTDIR)/webclient.pdb" /machine:I386 /out:"$(OUTDIR)/webclient.exe"
-LINK32_OBJS= \
- "$(INTDIR)\bench.obj" \
- "$(INTDIR)\errexit.obj" \
- "$(INTDIR)\get.obj" \
- "$(INTDIR)\getopt.obj" \
- "$(INTDIR)\gettimeofday.obj" \
- "$(INTDIR)\parse_file_list.obj" \
- "$(INTDIR)\statistics.obj" \
- "$(INTDIR)\sysdep.obj" \
- "$(INTDIR)\timefunc.obj" \
- "$(INTDIR)\webclient.obj"
-
-"$(OUTDIR)\webclient.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "webclient - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "WinDebug"
-# PROP BASE Intermediate_Dir "WinDebug"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "WinDebug"
-# PROP Intermediate_Dir "WinDebug"
-OUTDIR=.\WinDebug
-INTDIR=.\WinDebug
-
-ALL : "$(OUTDIR)\webclient.exe" "$(OUTDIR)\webclient.bsc"
-
-CLEAN :
- -@erase "$(INTDIR)\bench.obj"
- -@erase "$(INTDIR)\bench.sbr"
- -@erase "$(INTDIR)\errexit.obj"
- -@erase "$(INTDIR)\errexit.sbr"
- -@erase "$(INTDIR)\get.obj"
- -@erase "$(INTDIR)\get.sbr"
- -@erase "$(INTDIR)\getopt.obj"
- -@erase "$(INTDIR)\getopt.sbr"
- -@erase "$(INTDIR)\gettimeofday.obj"
- -@erase "$(INTDIR)\gettimeofday.sbr"
- -@erase "$(INTDIR)\parse_file_list.obj"
- -@erase "$(INTDIR)\parse_file_list.sbr"
- -@erase "$(INTDIR)\statistics.obj"
- -@erase "$(INTDIR)\statistics.sbr"
- -@erase "$(INTDIR)\sysdep.obj"
- -@erase "$(INTDIR)\sysdep.sbr"
- -@erase "$(INTDIR)\timefunc.obj"
- -@erase "$(INTDIR)\timefunc.sbr"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(INTDIR)\webclient.obj"
- -@erase "$(INTDIR)\webclient.sbr"
- -@erase "$(OUTDIR)\webclient.bsc"
- -@erase "$(OUTDIR)\webclient.exe"
- -@erase "$(OUTDIR)\webclient.ilk"
- -@erase "$(OUTDIR)\webclient.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FR /YX /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /FR /YX /c
-CPP_PROJ=/nologo /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_CONSOLE"\
- /FR"$(INTDIR)/" /Fp"$(INTDIR)/webclient.pch" /YX /Fo"$(INTDIR)/"\
- /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\WinDebug/
-CPP_SBRS=.\WinDebug/
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/webclient.bsc"
-BSC32_SBRS= \
- "$(INTDIR)\bench.sbr" \
- "$(INTDIR)\errexit.sbr" \
- "$(INTDIR)\get.sbr" \
- "$(INTDIR)\getopt.sbr" \
- "$(INTDIR)\gettimeofday.sbr" \
- "$(INTDIR)\parse_file_list.sbr" \
- "$(INTDIR)\statistics.sbr" \
- "$(INTDIR)\sysdep.sbr" \
- "$(INTDIR)\timefunc.sbr" \
- "$(INTDIR)\webclient.sbr"
-
-"$(OUTDIR)\webclient.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# SUBTRACT LINK32 /profile
-LINK32_FLAGS=wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/webclient.pdb" /debug /machine:I386\
- /out:"$(OUTDIR)/webclient.exe"
-LINK32_OBJS= \
- "$(INTDIR)\bench.obj" \
- "$(INTDIR)\errexit.obj" \
- "$(INTDIR)\get.obj" \
- "$(INTDIR)\getopt.obj" \
- "$(INTDIR)\gettimeofday.obj" \
- "$(INTDIR)\parse_file_list.obj" \
- "$(INTDIR)\statistics.obj" \
- "$(INTDIR)\sysdep.obj" \
- "$(INTDIR)\timefunc.obj" \
- "$(INTDIR)\webclient.obj"
-
-"$(OUTDIR)\webclient.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-################################################################################
-# Begin Target
-
-# Name "webclient - Win32 Release"
-# Name "webclient - Win32 Debug"
-
-!IF "$(CFG)" == "webclient - Win32 Release"
-
-!ELSEIF "$(CFG)" == "webclient - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=..\webclient.c
-DEP_CPP_WEBCL=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\webclient.obj" : $(SOURCE) $(DEP_CPP_WEBCL) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\webclient.sbr" : $(SOURCE) $(DEP_CPP_WEBCL) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\timefunc.c
-DEP_CPP_TIMEF=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\timefunc.obj" : $(SOURCE) $(DEP_CPP_TIMEF) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\timefunc.sbr" : $(SOURCE) $(DEP_CPP_TIMEF) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\sysdep.c
-DEP_CPP_SYSDE=\
- "..\config.h"\
- "..\sysdep.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\sysdep.obj" : $(SOURCE) $(DEP_CPP_SYSDE) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\sysdep.sbr" : $(SOURCE) $(DEP_CPP_SYSDE) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\statistics.c
-DEP_CPP_STATI=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\statistics.obj" : $(SOURCE) $(DEP_CPP_STATI) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\statistics.sbr" : $(SOURCE) $(DEP_CPP_STATI) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\parse_file_list.c
-DEP_CPP_PARSE=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\parse_file_list.obj" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\parse_file_list.sbr" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\gettimeofday.c
-DEP_CPP_GETTI=\
- {$(INCLUDE)}"\sys\TIMEB.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\gettimeofday.obj" : $(SOURCE) $(DEP_CPP_GETTI) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\gettimeofday.sbr" : $(SOURCE) $(DEP_CPP_GETTI) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\getopt.c
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\getopt.obj" : $(SOURCE) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\getopt.sbr" : $(SOURCE) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\get.c
-DEP_CPP_GET_C=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\get.obj" : $(SOURCE) $(DEP_CPP_GET_C) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\get.sbr" : $(SOURCE) $(DEP_CPP_GET_C) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\errexit.c
-DEP_CPP_ERREX=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\errexit.obj" : $(SOURCE) $(DEP_CPP_ERREX) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\errexit.sbr" : $(SOURCE) $(DEP_CPP_ERREX) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\bench.c
-DEP_CPP_BENCH=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\bench.obj" : $(SOURCE) $(DEP_CPP_BENCH) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\bench.sbr" : $(SOURCE) $(DEP_CPP_BENCH) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/apps/JAWS/clients/WebSTONE/src/config.cache b/apps/JAWS/clients/WebSTONE/src/config.cache
deleted file mode 100644
index c8705dca2f4..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/config.cache
+++ /dev/null
@@ -1,47 +0,0 @@
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-ac_cv_c_const=${ac_cv_c_const='yes'}
-ac_cv_c_cross=${ac_cv_c_cross='no'}
-ac_cv_func_gethostname=${ac_cv_func_gethostname='yes'}
-ac_cv_func_gettimeofday=${ac_cv_func_gettimeofday='yes'}
-ac_cv_func_memcmp=${ac_cv_func_memcmp='yes'}
-ac_cv_func_select=${ac_cv_func_select='yes'}
-ac_cv_func_socket=${ac_cv_func_socket='yes'}
-ac_cv_func_strerror=${ac_cv_func_strerror='yes'}
-ac_cv_func_vprintf=${ac_cv_func_vprintf='yes'}
-ac_cv_func_wait3=${ac_cv_func_wait3='yes'}
-ac_cv_header_fcntl_h=${ac_cv_header_fcntl_h='yes'}
-ac_cv_header_limits_h=${ac_cv_header_limits_h='yes'}
-ac_cv_header_sgtty_h=${ac_cv_header_sgtty_h='yes'}
-ac_cv_header_stdc=${ac_cv_header_stdc='yes'}
-ac_cv_header_sys_time_h=${ac_cv_header_sys_time_h='yes'}
-ac_cv_header_sys_wait_h=${ac_cv_header_sys_wait_h='yes'}
-ac_cv_header_time=${ac_cv_header_time='yes'}
-ac_cv_header_unistd_h=${ac_cv_header_unistd_h='yes'}
-ac_cv_lib_compat=${ac_cv_lib_compat='no'}
-ac_cv_lib_m=${ac_cv_lib_m='yes'}
-ac_cv_lib_socket=${ac_cv_lib_socket='yes'}
-ac_cv_lib_ucb=${ac_cv_lib_ucb='no'}
-ac_cv_path_PERL=${ac_cv_path_PERL='/usr/sbin/perl'}
-ac_cv_prog_AWK=${ac_cv_prog_AWK='nawk'}
-ac_cv_prog_CC=${ac_cv_prog_CC='cc'}
-ac_cv_prog_CPP=${ac_cv_prog_CPP='cc -E'}
-ac_cv_prog_gcc=${ac_cv_prog_gcc='no'}
-ac_cv_prog_make_make_set=${ac_cv_prog_make_make_set='yes'}
-ac_cv_struct_tm=${ac_cv_struct_tm='time.h'}
-ac_cv_struct_tm_zone=${ac_cv_struct_tm_zone='no'}
-ac_cv_type_signal=${ac_cv_type_signal='void'}
-ac_cv_type_size_t=${ac_cv_type_size_t='yes'}
-ac_cv_var_tzname=${ac_cv_var_tzname='yes'}
diff --git a/apps/JAWS/clients/WebSTONE/src/config.guess b/apps/JAWS/clients/WebSTONE/src/config.guess
deleted file mode 100755
index 2ff0eba28ac..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/config.guess
+++ /dev/null
@@ -1,565 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
-#
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Written by Per Bothner <bothner@cygnus.com>.
-# The master version of this file is at the FSF in /home/gd/gnu/lib.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit system type (host/target name).
-#
-# Only a few systems have been added to this list; please add others
-# (but try to keep the structure clean).
-#
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 8/24/94.)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- alpha:OSF1:V*:*)
- # After 1.2, OSF1 uses "V1.3" for uname -r.
- echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^V//'`
- exit 0 ;;
- alpha:OSF1:*:*)
- # 1.2 uses "1.2" for uname -r.
- echo alpha-dec-osf${UNAME_RELEASE}
- exit 0 ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit 0 ;;
- amiga:NetBSD:*:*)
- echo m68k-cbm-netbsd${UNAME_RELEASE}
- exit 0 ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
- Pyramid*:OSx*:*:*)
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit 0 ;;
- sun4*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- i86pc:SunOS:5.*:*)
- echo i386-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
- atari*:NetBSD:*:*)
- echo m68k-atari-netbsd${UNAME_RELEASE}
- exit 0 ;;
- sun3*:NetBSD:*:*)
- echo m68k-sun-netbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:NetBSD:*:*)
- echo m68k-apple-netbsd${UNAME_RELEASE}
- exit 0 ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- mips:*:4*:UMIPS)
- echo mips-mips-riscos4sysv
- exit 0 ;;
- mips:*:5*:RISCos)
- echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit 0 ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit 0 ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit 0 ;;
- AViiON:dgux:*:*)
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
- -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- exit 0 ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit 0 ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit 0 ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit 0 ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit 0 ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit 0 ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i[34]86:AIX:*:*)
- echo i386-ibm-aix
- exit 0 ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- sed 's/^ //' << EOF >dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
- echo rs6000-ibm-aix3.2.5
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit 0 ;;
- *:AIX:*:4)
- if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=4.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit 0 ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit 0 ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit 0 ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit 0 ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit 0 ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit 0 ;;
- 9000/[3478]??:HP-UX:*:*)
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/7?? | 9000/8?[79] ) HP_ARCH=hppa1.1 ;;
- 9000/8?? ) HP_ARCH=hppa1.0 ;;
- esac
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit 0 ;;
- 3050*:HI-UX:*:*)
- sed 's/^ //' << EOF >dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
- echo unknown-hitachi-hiuxwe2
- exit 0 ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit 0 ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit 0 ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit 0 ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit 0 ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit 0 ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit 0 ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit 0 ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit 0 ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit 0 ;;
- CRAY*X-MP:*:*:*)
- echo xmp-cray-unicos
- exit 0 ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE}
- exit 0 ;;
- CRAY*C90:*:*:*)
- echo c90-cray-unicos${UNAME_RELEASE}
- exit 0 ;;
- CRAY-2:*:*:*)
- echo cray2-cray-unicos
- exit 0 ;;
- hp3[0-9][05]:NetBSD:*:*)
- echo m68k-hp-netbsd${UNAME_RELEASE}
- exit 0 ;;
- i[34]86:BSD/386:*:* | *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit 0 ;;
- *:NetBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- exit 0 ;;
- *:GNU:*:*)
- echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
- *:Linux:*:*)
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us.
- ld_help_string=`ld --help 2>&1`
- if echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: elf_i[345]86"; then
- echo "${UNAME_MACHINE}-unknown-linux" ; exit 0
- elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86linux"; then
- echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0
- elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86coff"; then
- echo "${UNAME_MACHINE}-unknown-linuxcoff" ; exit 0
- elif test "${UNAME_MACHINE}" = "alpha" ; then
- echo alpha-unknown-linux ; exit 0
- else
- # Either a pre-BFD a.out linker (linuxoldld) or one that does not give us
- # useful --help. Gcc wants to distinguish between linuxoldld and linuxaout.
- test ! -d /usr/lib/ldscripts/. \
- && echo "${UNAME_MACHINE}-unknown-linuxoldld" && exit 0
- # Determine whether the default compiler is a.out or elf
- cat >dummy.c <<EOF
-main(argc, argv)
-int argc;
-char *argv[];
-{
-#ifdef __ELF__
- printf ("%s-unknown-linux\n", argv[1]);
-#else
- printf ("%s-unknown-linuxaout\n", argv[1]);
-#endif
- return 0;
-}
-EOF
- ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
- rm -f dummy.c dummy
- fi ;;
-# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
-# are messed up and put the nodename in both sysname and nodename.
- i[34]86:DYNIX/ptx:4*:*)
- echo i386-sequent-sysv4
- exit 0 ;;
- i[34]86:*:4.*:* | i[34]86:SYSTEM_V:4.*:*)
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
- else
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}
- fi
- exit 0 ;;
- i[34]86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-unknown-isc$UNAME_REL
- elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
- (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
- echo ${UNAME_MACHINE}-unknown-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-unknown-sysv32
- fi
- exit 0 ;;
- Intel:Mach:3*:*)
- echo i386-unknown-mach3
- exit 0 ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit 0 ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit 0 ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit 0 ;;
- M680[234]0:*:R3V[567]*:*)
- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0)
- uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3 && exit 0 ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4 && exit 0 ;;
- m680[234]0:LynxOS:2.[23]*:*)
- echo m68k-lynx-lynxos${UNAME_RELEASE}
- exit 0 ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit 0 ;;
- i[34]86:LynxOS:2.[23]*:*)
- echo i386-lynx-lynxos${UNAME_RELEASE}
- exit 0 ;;
- TSUNAMI:LynxOS:2.[23]*:*)
- echo sparc-lynx-lynxos${UNAME_RELEASE}
- exit 0 ;;
- rs6000:LynxOS:2.[23]*:*)
- echo rs6000-lynx-lynxos${UNAME_RELEASE}
- exit 0 ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit 0 ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-cat >dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- printf ("%s-next-nextstep%s\n", __ARCHITECTURE__, version==2 ? "2" : "3");
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-unknown-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-#if !defined (ultrix)
- printf ("vax-dec-bsd\n"); exit (0);
-#else
- printf ("vax-dec-ultrix\n"); exit (0);
-#endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
-rm -f dummy.c dummy
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit 0 ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- c34*)
- echo c34-convex-bsd
- exit 0 ;;
- c38*)
- echo c38-convex-bsd
- exit 0 ;;
- c4*)
- echo c4-convex-bsd
- exit 0 ;;
- esac
-fi
-
-#echo '(Unable to guess system type)' 1>&2
-
-exit 1
diff --git a/apps/JAWS/clients/WebSTONE/src/config.h b/apps/JAWS/clients/WebSTONE/src/config.h
deleted file mode 100644
index ae96e98e0a3..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/config.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* config.h. Generated automatically by configure. */
-/* config.h.in. Generated automatically from configure.in by autoheader. */
-
-/* Define to empty if the keyword does not work. */
-/* #undef const */
-
-/* Define if you don't have vprintf but do have _doprnt. */
-/* #undef HAVE_DOPRNT */
-
-/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
-#define HAVE_SYS_WAIT_H 1
-
-/* Define if your struct tm has tm_zone. */
-/* #undef HAVE_TM_ZONE */
-
-/* Define if you don't have tm_zone but do have the external array
- tzname. */
-#define HAVE_TZNAME 1
-
-/* Define if you have the vprintf function. */
-#define HAVE_VPRINTF 1
-
-/* Define if you have the wait3 system call. */
-#define HAVE_WAIT3 1
-
-/* Define as the return type of signal handlers (int or void). */
-#define RETSIGTYPE void
-
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-/* #undef size_t */
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define if you can safely include both <sys/time.h> and <time.h>. */
-#define TIME_WITH_SYS_TIME 1
-
-/* Define if your <sys/time.h> declares struct tm. */
-/* #undef TM_IN_SYS_TIME */
-
-/* Define to the name of the distribution. */
-#define PRODUCT "webstone"
-
-/* Define to the version of the distribution. */
-#define VERSION "2.0b4"
-
-/* Should we use timezone in gettimeofday? */
-#define USE_TIMEZONE 1
-
-/* Define if you have the gethostname function. */
-#define HAVE_GETHOSTNAME 1
-
-/* Define if you have the gettimeofday function. */
-#define HAVE_GETTIMEOFDAY 1
-
-/* Define if you have the select function. */
-#define HAVE_SELECT 1
-
-/* Define if you have the socket function. */
-#define HAVE_SOCKET 1
-
-/* Define if you have the strerror function. */
-#define HAVE_STRERROR 1
-
-/* Define if you have the <fcntl.h> header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define if you have the <limits.h> header file. */
-#define HAVE_LIMITS_H 1
-
-/* Define if you have the <sgtty.h> header file. */
-#define HAVE_SGTTY_H 1
-
-/* Define if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
-
-/* Define if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define if you have the compat library (-lcompat). */
-/* #undef HAVE_LIBCOMPAT */
-
-/* Define if you have the m library (-lm). */
-#define HAVE_LIBM 1
-
-/* Define if you have the socket library (-lsocket). */
-#define HAVE_LIBSOCKET 1
-
-/* Define if you have the ucb library (-lucb). */
-/* #undef HAVE_LIBUCB */
diff --git a/apps/JAWS/clients/WebSTONE/src/config.h.in b/apps/JAWS/clients/WebSTONE/src/config.h.in
deleted file mode 100644
index 91299ae624b..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/config.h.in
+++ /dev/null
@@ -1,89 +0,0 @@
-/* config.h.in. Generated automatically from configure.in by autoheader. */
-
-/* Define to empty if the keyword does not work. */
-#undef const
-
-/* Define if you don't have vprintf but do have _doprnt. */
-#undef HAVE_DOPRNT
-
-/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define if your struct tm has tm_zone. */
-#undef HAVE_TM_ZONE
-
-/* Define if you don't have tm_zone but do have the external array
- tzname. */
-#undef HAVE_TZNAME
-
-/* Define if you have the vprintf function. */
-#undef HAVE_VPRINTF
-
-/* Define if you have the wait3 system call. */
-#undef HAVE_WAIT3
-
-/* Define as the return type of signal handlers (int or void). */
-#undef RETSIGTYPE
-
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-#undef size_t
-
-/* Define if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
-
-/* Define if your <sys/time.h> declares struct tm. */
-#undef TM_IN_SYS_TIME
-
-/* Define to the name of the distribution. */
-#undef PRODUCT
-
-/* Define to the version of the distribution. */
-#undef VERSION
-
-/* Should we use timezone in gettimeofday? */
-#undef USE_TIMEZONE
-
-/* Define if you have the gethostname function. */
-#undef HAVE_GETHOSTNAME
-
-/* Define if you have the gettimeofday function. */
-#undef HAVE_GETTIMEOFDAY
-
-/* Define if you have the select function. */
-#undef HAVE_SELECT
-
-/* Define if you have the socket function. */
-#undef HAVE_SOCKET
-
-/* Define if you have the strerror function. */
-#undef HAVE_STRERROR
-
-/* Define if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
-/* Define if you have the <sgtty.h> header file. */
-#undef HAVE_SGTTY_H
-
-/* Define if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define if you have the compat library (-lcompat). */
-#undef HAVE_LIBCOMPAT
-
-/* Define if you have the m library (-lm). */
-#undef HAVE_LIBM
-
-/* Define if you have the socket library (-lsocket). */
-#undef HAVE_LIBSOCKET
-
-/* Define if you have the ucb library (-lucb). */
-#undef HAVE_LIBUCB
diff --git a/apps/JAWS/clients/WebSTONE/src/config.log b/apps/JAWS/clients/WebSTONE/src/config.log
deleted file mode 100644
index 1b2fa65abd8..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/config.log
+++ /dev/null
@@ -1,4 +0,0 @@
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-cc -c -g conftest.c
diff --git a/apps/JAWS/clients/WebSTONE/src/config.status b/apps/JAWS/clients/WebSTONE/src/config.status
deleted file mode 100755
index 2f00f63aba7..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/config.status
+++ /dev/null
@@ -1,288 +0,0 @@
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host tango:
-#
-# configure
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: ./config.status [--recheck] [--version] [--help]"
-for ac_option
-do
- case "$ac_option" in
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running ${CONFIG_SHELL-/bin/sh} configure --no-create --no-recursion"
- exec ${CONFIG_SHELL-/bin/sh} configure --no-create --no-recursion ;;
- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "./config.status generated by autoconf version 2.7"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "$ac_cs_usage"; exit 0 ;;
- *) echo "$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=.
-
-trap 'rm -fr Makefile config.h conftest*; exit 1' 1 2 15
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\&%]/\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF
-/^[ ]*VPATH[ ]*=[^:]*$/d
-
-s%@CFLAGS@%-g%g
-s%@CPPFLAGS@%%g
-s%@CXXFLAGS@%%g
-s%@DEFS@%-DHAVE_CONFIG_H%g
-s%@LDFLAGS@%%g
-s%@LIBS@%-lsocket -lm %g
-s%@exec_prefix@%${prefix}%g
-s%@prefix@%bin%g
-s%@program_transform_name@%s,x,x,%g
-s%@bindir@%${exec_prefix}/bin%g
-s%@sbindir@%${exec_prefix}/sbin%g
-s%@libexecdir@%${exec_prefix}/libexec%g
-s%@datadir@%${prefix}/share%g
-s%@sysconfdir@%${prefix}/etc%g
-s%@sharedstatedir@%${prefix}/com%g
-s%@localstatedir@%${prefix}/var%g
-s%@libdir@%${exec_prefix}/lib%g
-s%@includedir@%${prefix}/include%g
-s%@oldincludedir@%/usr/include%g
-s%@infodir@%${prefix}/info%g
-s%@mandir@%${prefix}/man%g
-s%@PRODUCT@%webstone%g
-s%@VERSION@%2.0b4%g
-s%@host@%sparc-sun-solaris2.5.1%g
-s%@host_alias@%sparc-sun-solaris2.5.1%g
-s%@host_cpu@%sparc%g
-s%@host_vendor@%sun%g
-s%@host_os@%solaris2.5.1%g
-s%@target@%sparc-sun-solaris2.5.1%g
-s%@target_alias@%sparc-sun-solaris2.5.1%g
-s%@target_cpu@%sparc%g
-s%@target_vendor@%sun%g
-s%@target_os@%solaris2.5.1%g
-s%@build@%sparc-sun-solaris2.5.1%g
-s%@build_alias@%sparc-sun-solaris2.5.1%g
-s%@build_cpu@%sparc%g
-s%@build_vendor@%sun%g
-s%@build_os@%solaris2.5.1%g
-s%@CC@%cc%g
-s%@SET_MAKE@%%g
-s%@AWK@%nawk%g
-s%@PERL@%/usr/sbin/perl%g
-s%@PERL_SCRIPTS@%bin/wscollect.pl%g
-s%@CPP@%cc -E%g
-s%@LIBOBJS@%%g
-
-CEOF
-
-CONFIG_FILES=${CONFIG_FILES-"Makefile"}
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- # Adjust relative srcdir, etc. for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- case "$ac_given_srcdir" in
- .) srcdir=.
- if test -z "$ac_dots"; then top_srcdir=.
- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- echo creating "$ac_file"
- rm -f "$ac_file"
- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
- case "$ac_file" in
- *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
- *) ac_comsub= ;;
- esac
- sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file
-fi; done
-rm -f conftest.subs
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='\([ ]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-CONFIG_HEADERS=${CONFIG_HEADERS-"config.h"}
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- echo creating $ac_file
-
- rm -f conftest.frag conftest.in conftest.out
- cp $ac_given_srcdir/$ac_file_in conftest.in
-
- cat > conftest.frag <<CEOF
-${ac_dA}PRODUCT${ac_dB}PRODUCT${ac_dC}"webstone"${ac_dD}
-${ac_uA}PRODUCT${ac_uB}PRODUCT${ac_uC}"webstone"${ac_uD}
-${ac_eA}PRODUCT${ac_eB}PRODUCT${ac_eC}"webstone"${ac_eD}
-${ac_dA}VERSION${ac_dB}VERSION${ac_dC}"2.0b4"${ac_dD}
-${ac_uA}VERSION${ac_uB}VERSION${ac_uC}"2.0b4"${ac_uD}
-${ac_eA}VERSION${ac_eB}VERSION${ac_eC}"2.0b4"${ac_eD}
-${ac_dA}HAVE_LIBM${ac_dB}HAVE_LIBM${ac_dC}1${ac_dD}
-${ac_uA}HAVE_LIBM${ac_uB}HAVE_LIBM${ac_uC}1${ac_uD}
-${ac_eA}HAVE_LIBM${ac_eB}HAVE_LIBM${ac_eC}1${ac_eD}
-${ac_dA}HAVE_LIBSOCKET${ac_dB}HAVE_LIBSOCKET${ac_dC}1${ac_dD}
-${ac_uA}HAVE_LIBSOCKET${ac_uB}HAVE_LIBSOCKET${ac_uC}1${ac_uD}
-${ac_eA}HAVE_LIBSOCKET${ac_eB}HAVE_LIBSOCKET${ac_eC}1${ac_eD}
-CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-
- cat > conftest.frag <<CEOF
-${ac_dA}STDC_HEADERS${ac_dB}STDC_HEADERS${ac_dC}1${ac_dD}
-${ac_uA}STDC_HEADERS${ac_uB}STDC_HEADERS${ac_uC}1${ac_uD}
-${ac_eA}STDC_HEADERS${ac_eB}STDC_HEADERS${ac_eC}1${ac_eD}
-${ac_dA}HAVE_SYS_WAIT_H${ac_dB}HAVE_SYS_WAIT_H${ac_dC}1${ac_dD}
-${ac_uA}HAVE_SYS_WAIT_H${ac_uB}HAVE_SYS_WAIT_H${ac_uC}1${ac_uD}
-${ac_eA}HAVE_SYS_WAIT_H${ac_eB}HAVE_SYS_WAIT_H${ac_eC}1${ac_eD}
-${ac_dA}HAVE_FCNTL_H${ac_dB}HAVE_FCNTL_H${ac_dC}1${ac_dD}
-${ac_uA}HAVE_FCNTL_H${ac_uB}HAVE_FCNTL_H${ac_uC}1${ac_uD}
-${ac_eA}HAVE_FCNTL_H${ac_eB}HAVE_FCNTL_H${ac_eC}1${ac_eD}
-${ac_dA}HAVE_LIMITS_H${ac_dB}HAVE_LIMITS_H${ac_dC}1${ac_dD}
-${ac_uA}HAVE_LIMITS_H${ac_uB}HAVE_LIMITS_H${ac_uC}1${ac_uD}
-${ac_eA}HAVE_LIMITS_H${ac_eB}HAVE_LIMITS_H${ac_eC}1${ac_eD}
-CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-
- cat > conftest.frag <<CEOF
-${ac_dA}HAVE_SGTTY_H${ac_dB}HAVE_SGTTY_H${ac_dC}1${ac_dD}
-${ac_uA}HAVE_SGTTY_H${ac_uB}HAVE_SGTTY_H${ac_uC}1${ac_uD}
-${ac_eA}HAVE_SGTTY_H${ac_eB}HAVE_SGTTY_H${ac_eC}1${ac_eD}
-${ac_dA}HAVE_SYS_TIME_H${ac_dB}HAVE_SYS_TIME_H${ac_dC}1${ac_dD}
-${ac_uA}HAVE_SYS_TIME_H${ac_uB}HAVE_SYS_TIME_H${ac_uC}1${ac_uD}
-${ac_eA}HAVE_SYS_TIME_H${ac_eB}HAVE_SYS_TIME_H${ac_eC}1${ac_eD}
-${ac_dA}HAVE_UNISTD_H${ac_dB}HAVE_UNISTD_H${ac_dC}1${ac_dD}
-${ac_uA}HAVE_UNISTD_H${ac_uB}HAVE_UNISTD_H${ac_uC}1${ac_uD}
-${ac_eA}HAVE_UNISTD_H${ac_eB}HAVE_UNISTD_H${ac_eC}1${ac_eD}
-${ac_dA}RETSIGTYPE${ac_dB}RETSIGTYPE${ac_dC}void${ac_dD}
-${ac_uA}RETSIGTYPE${ac_uB}RETSIGTYPE${ac_uC}void${ac_uD}
-${ac_eA}RETSIGTYPE${ac_eB}RETSIGTYPE${ac_eC}void${ac_eD}
-CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-
- cat > conftest.frag <<CEOF
-${ac_dA}TIME_WITH_SYS_TIME${ac_dB}TIME_WITH_SYS_TIME${ac_dC}1${ac_dD}
-${ac_uA}TIME_WITH_SYS_TIME${ac_uB}TIME_WITH_SYS_TIME${ac_uC}1${ac_uD}
-${ac_eA}TIME_WITH_SYS_TIME${ac_eB}TIME_WITH_SYS_TIME${ac_eC}1${ac_eD}
-${ac_dA}HAVE_TZNAME${ac_dB}HAVE_TZNAME${ac_dC}1${ac_dD}
-${ac_uA}HAVE_TZNAME${ac_uB}HAVE_TZNAME${ac_uC}1${ac_uD}
-${ac_eA}HAVE_TZNAME${ac_eB}HAVE_TZNAME${ac_eC}1${ac_eD}
-${ac_dA}USE_TIMEZONE${ac_dB}USE_TIMEZONE${ac_dC}1${ac_dD}
-${ac_uA}USE_TIMEZONE${ac_uB}USE_TIMEZONE${ac_uC}1${ac_uD}
-${ac_eA}USE_TIMEZONE${ac_eB}USE_TIMEZONE${ac_eC}1${ac_eD}
-${ac_dA}RETSIGTYPE${ac_dB}RETSIGTYPE${ac_dC}void${ac_dD}
-${ac_uA}RETSIGTYPE${ac_uB}RETSIGTYPE${ac_uC}void${ac_uD}
-${ac_eA}RETSIGTYPE${ac_eB}RETSIGTYPE${ac_eC}void${ac_eD}
-CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-
- cat > conftest.frag <<CEOF
-${ac_dA}HAVE_VPRINTF${ac_dB}HAVE_VPRINTF${ac_dC}1${ac_dD}
-${ac_uA}HAVE_VPRINTF${ac_uB}HAVE_VPRINTF${ac_uC}1${ac_uD}
-${ac_eA}HAVE_VPRINTF${ac_eB}HAVE_VPRINTF${ac_eC}1${ac_eD}
-${ac_dA}HAVE_WAIT3${ac_dB}HAVE_WAIT3${ac_dC}1${ac_dD}
-${ac_uA}HAVE_WAIT3${ac_uB}HAVE_WAIT3${ac_uC}1${ac_uD}
-${ac_eA}HAVE_WAIT3${ac_eB}HAVE_WAIT3${ac_eC}1${ac_eD}
-${ac_dA}HAVE_GETHOSTNAME${ac_dB}HAVE_GETHOSTNAME${ac_dC}1${ac_dD}
-${ac_uA}HAVE_GETHOSTNAME${ac_uB}HAVE_GETHOSTNAME${ac_uC}1${ac_uD}
-${ac_eA}HAVE_GETHOSTNAME${ac_eB}HAVE_GETHOSTNAME${ac_eC}1${ac_eD}
-${ac_dA}HAVE_GETTIMEOFDAY${ac_dB}HAVE_GETTIMEOFDAY${ac_dC}1${ac_dD}
-${ac_uA}HAVE_GETTIMEOFDAY${ac_uB}HAVE_GETTIMEOFDAY${ac_uC}1${ac_uD}
-${ac_eA}HAVE_GETTIMEOFDAY${ac_eB}HAVE_GETTIMEOFDAY${ac_eC}1${ac_eD}
-CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-
- cat > conftest.frag <<CEOF
-${ac_dA}HAVE_SELECT${ac_dB}HAVE_SELECT${ac_dC}1${ac_dD}
-${ac_uA}HAVE_SELECT${ac_uB}HAVE_SELECT${ac_uC}1${ac_uD}
-${ac_eA}HAVE_SELECT${ac_eB}HAVE_SELECT${ac_eC}1${ac_eD}
-${ac_dA}HAVE_SOCKET${ac_dB}HAVE_SOCKET${ac_dC}1${ac_dD}
-${ac_uA}HAVE_SOCKET${ac_uB}HAVE_SOCKET${ac_uC}1${ac_uD}
-${ac_eA}HAVE_SOCKET${ac_eB}HAVE_SOCKET${ac_eC}1${ac_eD}
-${ac_dA}HAVE_STRERROR${ac_dB}HAVE_STRERROR${ac_dC}1${ac_dD}
-${ac_uA}HAVE_STRERROR${ac_uB}HAVE_STRERROR${ac_uC}1${ac_uD}
-${ac_eA}HAVE_STRERROR${ac_eB}HAVE_STRERROR${ac_eC}1${ac_eD}
-s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-
- rm -f conftest.frag conftest.h
- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $ac_file conftest.h 2>/dev/null; then
- echo "$ac_file is unchanged"
- rm -f conftest.h
- else
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
-
-
-exit 0
diff --git a/apps/JAWS/clients/WebSTONE/src/config.sub b/apps/JAWS/clients/WebSTONE/src/config.sub
deleted file mode 100755
index e67a800b515..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/config.sub
+++ /dev/null
@@ -1,867 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script, version 1.1.
-# Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-if [ x$1 = x ]
-then
- echo Configuration name missing. 1>&2
- echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
- echo "or $0 ALIAS" 1>&2
- echo where ALIAS is a recognized configuration type. 1>&2
- exit 1
-fi
-
-# First pass through any local machine types.
-case $1 in
- *local*)
- echo $1
- exit 0
- ;;
- *)
- ;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS (if any).
-basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-if [ $basic_machine != $1 ]
-then os=`echo $1 | sed 's/.*-/-/'`
-else os=; fi
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp )
- os=
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
- ;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- tahoe | i[345]86 | i860 | m68k | m68000 | m88k | ns32k | arm \
- | arme[lb] | pyramid \
- | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \
- | alpha | we32k | ns16k | clipper | sparclite | i370 | sh \
- | powerpc | powerpcle | sparc64 | 1750a | dsp16xx | mips64 | mipsel \
- | pdp11 | mips64el | mips64orion | mips64orionel \
- | sparc)
- basic_machine=$basic_machine-unknown
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- vax-* | tahoe-* | i[345]86-* | i860-* | m68k-* | m68000-* | m88k-* \
- | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
- | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
- | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
- | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
- | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \
- | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \
- | mips64el-* | mips64orion-* | mips64orionel-*)
- ;;
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-cbm
- ;;
- amigados)
- basic_machine=m68k-cbm
- os=-amigados
- ;;
- amigaunix | amix)
- basic_machine=m68k-cbm
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- cray2)
- basic_machine=cray2-cray
- os=-unicos
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- ;;
- delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax)
- basic_machine=ns32k-encore
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- os=-mvs
- ;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
- i[345]86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
- os=-sysv32
- ;;
- i[345]86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
- os=-sysv4
- ;;
- i[345]86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
- os=-sysv
- ;;
- i[345]86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
- os=-solaris2
- ;;
- iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- miniframe)
- basic_machine=m68000-convergent
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
- ;;
- news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
- ;;
- -ns2*)
- os=-nextstep2
- ;;
- *)
- os=-nextstep3
- ;;
- esac
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- np1)
- basic_machine=np1-gould
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pentium | p5 | p6)
- # We don't have specific support for the Intel Pentium (p6) followon yet, so just call it a Pentium
- basic_machine=i586-intel
- ;;
- pentium-* | p5-* | p6-*)
- # We don't have specific support for the Intel Pentium (p6) followon yet, so just call it a Pentium
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- k5)
- # We don't have specific support for AMD's K5 yet, so just call it a Pentium
- basic_machine=i586-amd
- ;;
- nexen)
- # We don't have specific support for Nexgen yet, so just call it a Pentium
- basic_machine=i586-nexgen
- ;;
- pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=rs6000-ibm
- ;;
- ppc) basic_machine=powerpc-unknown
- ;;
- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
- basic_machine=powerpcle-unknown
- ;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ps2)
- basic_machine=i386-ibm
- ;;
- rm[46]00)
- basic_machine=mips-siemens
- ;;
- rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
- ;;
- spur)
- basic_machine=spur-unknown
- ;;
- sun2)
- basic_machine=m68000-sun
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
- ;;
- sun4)
- basic_machine=sparc-sun
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- xmp)
- basic_machine=xmp-cray
- os=-unicos
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- mips)
- basic_machine=mips-mips
- ;;
- romp)
- basic_machine=romp-ibm
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- vax)
- basic_machine=vax-dec
- ;;
- pdp11)
- basic_machine=pdp11-dec
- ;;
- we32k)
- basic_machine=we32k-att
- ;;
- sparc)
- basic_machine=sparc-sun
- ;;
- cydra)
- basic_machine=cydra-cydrome
- ;;
- orion)
- basic_machine=orion-highlevel
- ;;
- orion105)
- basic_machine=clipper-highlevel
- ;;
- *)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
- ;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
- # -solaris* is a basic system type, with this one exception.
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- -solaris)
- os=-solaris2
- ;;
- -unixware* | svr4*)
- os=-sysv4
- ;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux|'`
- ;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[345]* \
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
- | -amigados* | -msdos* | -newsos* | -unicos* | -aos* \
- | -nindy* | -vxworks* | -ebmon* | -hms* | -mvs* | -clix* \
- | -riscos* | -linux* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -netbsd* | -freebsd* | -riscix* \
- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* )
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -xenix)
- os=-xenix
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-semi)
- os=-aout
- ;;
- pdp11-*)
- os=-none
- ;;
- *-dec | vax-*)
- os=-ultrix4.2
- ;;
- m68*-apollo)
- os=-domain
- ;;
- i386-sun)
- os=-sunos4.0.2
- ;;
- m68000-sun)
- os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
- ;;
- sparc-* | *-sun)
- os=-sunos4.1.1
- ;;
- *-ibm)
- os=-aix
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigados
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -lynxos*)
- vendor=lynx
- ;;
- -aix*)
- vendor=ibm
- ;;
- -hpux*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -vxworks*)
- vendor=wrs
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
diff --git a/apps/JAWS/clients/WebSTONE/src/configure b/apps/JAWS/clients/WebSTONE/src/configure
deleted file mode 100755
index 8e1ad6e8369..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/configure
+++ /dev/null
@@ -1,2132 +0,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.7
-# Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-ac_default_prefix=bin
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-
-ac_prev=
-for ac_option
-do
-
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$ac_optarg" ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- eval "enable_${ac_feature}=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he)
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
- --cache-file=FILE cache test results in FILE
- --help print this message
- --no-create do not create output files
- --quiet, --silent do not print \`checking...' messages
- --version print the version of autoconf that created configure
-Directory and file names:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [same as prefix]
- --bindir=DIR user executables in DIR [EPREFIX/bin]
- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
- --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data in DIR
- [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data in DIR
- [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
- --libdir=DIR object code libraries in DIR [EPREFIX/lib]
- --includedir=DIR C header files in DIR [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
- --infodir=DIR info documentation in DIR [PREFIX/info]
- --mandir=DIR man documentation in DIR [PREFIX/man]
- --srcdir=DIR find the sources in DIR [configure dir or ..]
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM
- run sed PROGRAM on installed program names
-EOF
- cat << EOF
-Host type:
- --build=BUILD configure for building on BUILD [BUILD=HOST]
- --host=HOST configure for HOST [guessed]
- --target=TARGET configure for TARGET [TARGET=HOST]
-Features and packages:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --x-includes=DIR X include files are in DIR
- --x-libraries=DIR X library files are in DIR
-EOF
- if test -n "$ac_help"; then
- echo "--enable and --with options recognized:$ac_help"
- fi
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix="$ac_optarg" ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix="$ac_optarg" ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir="$ac_optarg" ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.7"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- eval "with_${ac_package}=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes="$ac_optarg" ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries="$ac_optarg" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
- echo "configure: warning: $ac_option: invalid host type" 1>&2
- fi
- if test "x$nonopt" != xNONE; then
- { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
- fi
- nonopt="$ac_option"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
- exec 6>/dev/null
-else
- exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
- case "$ac_arg" in
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c) ;;
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
- ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- *) ac_configure_args="$ac_configure_args $ac_arg" ;;
- esac
-done
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=webclient.c
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_prog=$0
- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='echo $CPP $CPPFLAGS 1>&5;
-$CPP $CPPFLAGS'
-ac_compile='echo ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5;
-${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5 2>&5'
-ac_link='echo ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5;
-${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5 2>&5'
-
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-PRODUCT=webstone
-VERSION=2.0b4
-cat >> confdefs.h <<EOF
-#define PRODUCT "$PRODUCT"
-EOF
-
-cat >> confdefs.h <<EOF
-#define VERSION "$VERSION"
-EOF
-
-
-
-
-
-# set system type
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-
-# Do some error checking and defaulting for the host and target type.
-# The inputs are:
-# configure --host=HOST --target=TARGET --build=BUILD NONOPT
-#
-# The rules are:
-# 1. You are not allowed to specify --host, --target, and nonopt at the
-# same time.
-# 2. Host defaults to nonopt.
-# 3. If nonopt is not specified, then host defaults to the current host,
-# as determined by config.guess.
-# 4. Target and build default to nonopt.
-# 5. If nonopt is not specified, then target and build default to host.
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-case $host---$target---$nonopt in
-NONE---*---* | *---NONE---* | *---*---NONE) ;;
-*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
-esac
-
-
-# Make sure we can run config.sub.
-if $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-
-host_alias=$host
-case "$host_alias" in
-NONE)
- case $nonopt in
- NONE)
- if host_alias=`$ac_config_guess`; then :
- else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
- fi ;;
- *) host_alias=$nonopt ;;
- esac ;;
-esac
-
-host=`$ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
-echo $ac_n "checking target system type""... $ac_c" 1>&6
-
-target_alias=$target
-case "$target_alias" in
-NONE)
- case $nonopt in
- NONE) target_alias=$host_alias ;;
- *) target_alias=$nonopt ;;
- esac ;;
-esac
-
-target=`$ac_config_sub $target_alias`
-target_cpu=`echo $target | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
-target_vendor=`echo $target | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
-target_os=`echo $target | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
-echo "$ac_t""$target" 1>&6
-
-echo $ac_n "checking build system type""... $ac_c" 1>&6
-
-build_alias=$build
-case "$build_alias" in
-NONE)
- case $nonopt in
- NONE) build_alias=$host_alias ;;
- *) build_alias=$nonopt ;;
- esac ;;
-esac
-
-build=`$ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
-echo "$ac_t""$build" 1>&6
-
-test "$host_alias" != "$target_alias" &&
- test "$program_prefix$program_suffix$program_transform_name" = \
- NONENONEs,x,x, &&
- program_prefix=${target_alias}-
-
-
-#
-# checks for programs
-#
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="gcc"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="cc"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if ${CC-cc} -E conftest.c 2>&5 | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gcc=yes
-else
- ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
- if test "${CFLAGS+set}" != set; then
- echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_prog_gcc_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_gcc_g=yes
-else
- ac_cv_prog_gcc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc_g" 1>&6
- if test $ac_cv_prog_gcc_g = yes; then
- CFLAGS="-g -O"
- else
- CFLAGS="-O"
- fi
- fi
-else
- GCC=
- test "${CFLAGS+set}" = set || CFLAGS="-g"
-fi
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-set dummy ${MAKE-make}; ac_make=$2
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftestmake <<\EOF
-all:
- @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftestmake
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- SET_MAKE=
-else
- echo "$ac_t""no" 1>&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-for ac_prog in mawk gawk nawk awk
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_AWK="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-AWK="$ac_cv_prog_AWK"
-if test -n "$AWK"; then
- echo "$ac_t""$AWK" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$AWK" && break
-done
-
-
-
-# We use a path for perl so the #! line in bin/wscollect.pl will work.
-# Extract the first word of "perl", so it can be a program name with args.
-set dummy perl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$PERL" in
- /*)
- ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_path_PERL="$ac_dir/$ac_word"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no"
- ;;
-esac
-fi
-PERL="$ac_cv_path_PERL"
-if test -n "$PERL"; then
- echo "$ac_t""$PERL" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-
-if test "$PERL" != no; then
- PERL_SCRIPTS="bin/wscollect.pl"
-else
- echo "configure: warning: Some functions may work correctly" 1>&2
-fi
-
-#
-# checks for libraries
-#
-# Replace `main' with a function in -lm:
-echo $ac_n "checking for -lm""... $ac_c" 1>&6
-ac_lib_var=`echo m | tr '.-/+' '___p'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lm $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 832 "configure"
-#include "confdefs.h"
-
-int main() { return 0; }
-int t() {
-floor()
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo m | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lm $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking for -lcompat""... $ac_c" 1>&6
-ac_lib_var=`echo compat | tr '.-/+' '___p'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lcompat $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 872 "configure"
-#include "confdefs.h"
-
-int main() { return 0; }
-int t() {
-rexec()
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo compat | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lcompat $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking for -lucb""... $ac_c" 1>&6
-ac_lib_var=`echo ucb | tr '.-/+' '___p'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lucb $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 912 "configure"
-#include "confdefs.h"
-
-int main() { return 0; }
-int t() {
-wait3()
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo ucb | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lucb $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking for -lsocket""... $ac_c" 1>&6
-ac_lib_var=`echo socket | tr '.-/+' '___p'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lsocket -lnsl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 952 "configure"
-#include "confdefs.h"
-
-int main() { return 0; }
-int t() {
-connect()
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo socket | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lsocket $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-#
-# checks for header files
-#
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # This must be in double quotes, not single quotes, because CPP may get
- # substituted into the Makefile and "${CC-cc}" will confuse make.
- CPP="${CC-cc} -E"
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
-#line 1003 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
-#line 1017 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- rm -rf conftest*
- CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
- ac_cv_prog_CPP="$CPP"
-fi
- CPP="$ac_cv_prog_CPP"
-else
- ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-# If we cannot run a trivial program, we must be cross compiling.
-echo $ac_n "checking whether cross-compiling""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_c_cross'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_c_cross=yes
-else
-cat > conftest.$ac_ext <<EOF
-#line 1051 "configure"
-#include "confdefs.h"
-main(){return(0);}
-EOF
-eval $ac_link
-if test -s conftest && (./conftest; exit) 2>/dev/null; then
- ac_cv_c_cross=no
-else
- ac_cv_c_cross=yes
-fi
-fi
-rm -fr conftest*
-fi
-
-echo "$ac_t""$ac_cv_c_cross" 1>&6
-cross_compiling=$ac_cv_c_cross
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1073 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-EOF
-eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- ac_cv_header_stdc=yes
-else
- echo "$ac_err" >&5
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 1095 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 1113 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
- :
-else
-cat > conftest.$ac_ext <<EOF
-#line 1134 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
-
-EOF
-eval $ac_link
-if test -s conftest && (./conftest; exit) 2>/dev/null; then
- :
-else
- ac_cv_header_stdc=no
-fi
-fi
-rm -fr conftest*
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
- cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1169 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/wait.h>
-#ifndef WEXITSTATUS
-#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
-#endif
-#ifndef WIFEXITED
-#define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
-#endif
-int main() { return 0; }
-int t() {
-int s;
-wait (&s);
-s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- ac_cv_header_sys_wait_h=yes
-else
- rm -rf conftest*
- ac_cv_header_sys_wait_h=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_header_sys_wait_h" 1>&6
-if test $ac_cv_header_sys_wait_h = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_SYS_WAIT_H 1
-EOF
-
-fi
-
-for ac_hdr in fcntl.h limits.h sgtty.h sys/time.h unistd.h
-do
-ac_safe=`echo "$ac_hdr" | tr './\055' '___'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1213 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | tr 'abcdefghijklmnopqrstuvwxyz./\055' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ___'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-#
-# checks for typedefs, structures, and compiler characteristics
-#
-echo $ac_n "checking for working const""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1250 "configure"
-#include "confdefs.h"
-
-int main() { return 0; }
-int t() {
-
-/* Ultrix mips cc rejects this. */
-typedef int charset[2]; const charset x;
-/* SunOS 4.1.1 cc rejects this. */
-char const *const *ccp;
-char **p;
-/* NEC SVR4.0.2 mips cc rejects this. */
-struct point {int x, y;};
-static struct point const zero = {0,0};
-/* AIX XL C 1.02.0.0 rejects this.
- It does not let you subtract one const X* pointer from another in an arm
- of an if-expression whose if-part is not a constant expression */
-const char *g = "string";
-ccp = &g + (g ? g-g : 0);
-/* HPUX 7.0 cc rejects these. */
-++ccp;
-p = (char**) ccp;
-ccp = (char const *const *) p;
-{ /* SCO 3.2v4 cc rejects this. */
- char *t;
- char const *s = 0 ? (char *) 0 : (char const *) 0;
-
- *t++ = 0;
-}
-{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
- int x[] = {25, 17};
- const int *foo = &x[0];
- ++foo;
-}
-{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
- typedef const int *iptr;
- iptr p = 0;
- ++p;
-}
-{ /* AIX XL C 1.02.0.0 rejects this saying
- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; };
- struct s *b; b->j = 5;
-}
-{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
- const int foo = 10;
-}
-
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- ac_cv_c_const=yes
-else
- rm -rf conftest*
- ac_cv_c_const=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_c_const" 1>&6
-if test $ac_cv_c_const = no; then
- cat >> confdefs.h <<\EOF
-#define const
-EOF
-
-fi
-
-echo $ac_n "checking for size_t""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1324 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "size_t" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_size_t=yes
-else
- rm -rf conftest*
- ac_cv_type_size_t=no
-fi
-rm -f conftest*
-
-fi
-echo "$ac_t""$ac_cv_type_size_t" 1>&6
-if test $ac_cv_type_size_t = no; then
- cat >> confdefs.h <<\EOF
-#define size_t unsigned
-EOF
-
-fi
-
-echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1355 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-int main() { return 0; }
-int t() {
-int i;
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- ac_cv_type_signal=void
-else
- rm -rf conftest*
- ac_cv_type_signal=int
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_type_signal" 1>&6
-cat >> confdefs.h <<EOF
-#define RETSIGTYPE $ac_cv_type_signal
-EOF
-
-
-echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1395 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-int main() { return 0; }
-int t() {
-struct tm *tp;
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- ac_cv_header_time=yes
-else
- rm -rf conftest*
- ac_cv_header_time=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_header_time" 1>&6
-if test $ac_cv_header_time = yes; then
- cat >> confdefs.h <<\EOF
-#define TIME_WITH_SYS_TIME 1
-EOF
-
-fi
-
-echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1429 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <time.h>
-int main() { return 0; }
-int t() {
-struct tm *tp; tp->tm_sec;
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- ac_cv_struct_tm=time.h
-else
- rm -rf conftest*
- ac_cv_struct_tm=sys/time.h
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_struct_tm" 1>&6
-if test $ac_cv_struct_tm = sys/time.h; then
- cat >> confdefs.h <<\EOF
-#define TM_IN_SYS_TIME 1
-EOF
-
-fi
-
-echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1462 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <$ac_cv_struct_tm>
-int main() { return 0; }
-int t() {
-struct tm tm; tm.tm_zone;
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- ac_cv_struct_tm_zone=yes
-else
- rm -rf conftest*
- ac_cv_struct_tm_zone=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_struct_tm_zone" 1>&6
-if test "$ac_cv_struct_tm_zone" = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_TM_ZONE 1
-EOF
-
-else
- echo $ac_n "checking for tzname""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1494 "configure"
-#include "confdefs.h"
-#include <time.h>
-#ifndef tzname /* For SGI. */
-extern char *tzname[]; /* RS6000 and others reject char **tzname. */
-#endif
-int main() { return 0; }
-int t() {
-atoi(*tzname);
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- ac_cv_var_tzname=yes
-else
- rm -rf conftest*
- ac_cv_var_tzname=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_var_tzname" 1>&6
- if test $ac_cv_var_tzname = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_TZNAME 1
-EOF
-
- fi
-fi
-
-cat > conftest.$ac_ext <<EOF
-#line 1526 "configure"
-#include "confdefs.h"
-#include <sys/time.h>
-int main() { return 0; }
-int t() {
-struct timeval thetime; struct timezone thezone;
- gettimeofday(&thetime, &thezone);
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define USE_TIMEZONE 1
-EOF
-
-fi
-rm -f conftest*
-
-
-#
-# checks for library functions
-#
-echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_func_memcmp'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_memcmp=no
-else
-cat > conftest.$ac_ext <<EOF
-#line 1556 "configure"
-#include "confdefs.h"
-
-main()
-{
- char c0 = 0x40, c1 = 0x80, c2 = 0x81;
- exit(memcmp(&c0, &c2, 1) < 0 && memcmp(&c1, &c2, 1) < 0 ? 0 : 1);
-}
-
-EOF
-eval $ac_link
-if test -s conftest && (./conftest; exit) 2>/dev/null; then
- ac_cv_func_memcmp=yes
-else
- ac_cv_func_memcmp=no
-fi
-fi
-rm -fr conftest*
-fi
-
-echo "$ac_t""$ac_cv_func_memcmp" 1>&6
-test $ac_cv_func_memcmp = no && LIBOBJS="$LIBOBJS memcmp.o"
-
-echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1584 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-int main() { return 0; }
-int t() {
-int i;
-; return 0; }
-EOF
-if eval $ac_compile; then
- rm -rf conftest*
- ac_cv_type_signal=void
-else
- rm -rf conftest*
- ac_cv_type_signal=int
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_type_signal" 1>&6
-cat >> confdefs.h <<EOF
-#define RETSIGTYPE $ac_cv_type_signal
-EOF
-
-
-echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1624 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char vprintf(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-char vprintf();
-
-int main() { return 0; }
-int t() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_vprintf) || defined (__stub___vprintf)
-choke me
-#else
-vprintf();
-#endif
-
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- eval "ac_cv_func_vprintf=yes"
-else
- rm -rf conftest*
- eval "ac_cv_func_vprintf=no"
-fi
-rm -f conftest*
-
-fi
-if eval "test \"`echo '$ac_cv_func_'vprintf`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_VPRINTF 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test "$ac_cv_func_vprintf" != yes; then
-echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1672 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char _doprnt(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-char _doprnt();
-
-int main() { return 0; }
-int t() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub__doprnt) || defined (__stub____doprnt)
-choke me
-#else
-_doprnt();
-#endif
-
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- eval "ac_cv_func__doprnt=yes"
-else
- rm -rf conftest*
- eval "ac_cv_func__doprnt=no"
-fi
-rm -f conftest*
-
-fi
-if eval "test \"`echo '$ac_cv_func_'_doprnt`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_DOPRNT 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-echo $ac_n "checking for wait3 that fills in rusage""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_func_wait3'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_wait3=no
-else
-cat > conftest.$ac_ext <<EOF
-#line 1724 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <stdio.h>
-/* HP-UX has wait3 but does not fill in rusage at all. */
-main() {
- struct rusage r;
- int i;
- /* Use a field that we can force nonzero --
- voluntary context switches.
- For systems like NeXT and OSF/1 that don't set it,
- also use the system CPU time. And page faults (I/O) for Linux. */
- r.ru_nvcsw = 0;
- r.ru_stime.tv_sec = 0;
- r.ru_stime.tv_usec = 0;
- r.ru_majflt = r.ru_minflt = 0;
- switch (fork()) {
- case 0: /* Child. */
- sleep(1); /* Give up the CPU. */
- _exit(0);
- case -1: _exit(0); /* What can we do? */
- default: /* Parent. */
- wait3(&i, 0, &r);
- sleep(2); /* Avoid "text file busy" from rm on fast HP-UX machines. */
- exit(r.ru_nvcsw == 0 && r.ru_majflt == 0 && r.ru_minflt == 0
- && r.ru_stime.tv_sec == 0 && r.ru_stime.tv_usec == 0);
- }
-}
-EOF
-eval $ac_link
-if test -s conftest && (./conftest; exit) 2>/dev/null; then
- ac_cv_func_wait3=yes
-else
- ac_cv_func_wait3=no
-fi
-fi
-rm -fr conftest*
-fi
-
-echo "$ac_t""$ac_cv_func_wait3" 1>&6
-if test $ac_cv_func_wait3 = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_WAIT3 1
-EOF
-
-fi
-
-for ac_func in gethostname gettimeofday select socket strerror
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1780 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-char $ac_func();
-
-int main() { return 0; }
-int t() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if eval $ac_link; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-
-fi
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-#
-# checks for system services
-#
-
-#
-# all done
-#
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1='\2'}/p" \
- >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.7"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "\$ac_cs_usage"; exit 0 ;;
- *) echo "\$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-
-trap 'rm -fr `echo "Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@PRODUCT@%$PRODUCT%g
-s%@VERSION@%$VERSION%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@target@%$target%g
-s%@target_alias@%$target_alias%g
-s%@target_cpu@%$target_cpu%g
-s%@target_vendor@%$target_vendor%g
-s%@target_os@%$target_os%g
-s%@build@%$build%g
-s%@build_alias@%$build_alias%g
-s%@build_cpu@%$build_cpu%g
-s%@build_vendor@%$build_vendor%g
-s%@build_os@%$build_os%g
-s%@CC@%$CC%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@AWK@%$AWK%g
-s%@PERL@%$PERL%g
-s%@PERL_SCRIPTS@%$PERL_SCRIPTS%g
-s%@CPP@%$CPP%g
-s%@LIBOBJS@%$LIBOBJS%g
-
-CEOF
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- # Adjust relative srcdir, etc. for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- case "$ac_given_srcdir" in
- .) srcdir=.
- if test -z "$ac_dots"; then top_srcdir=.
- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- echo creating "$ac_file"
- rm -f "$ac_file"
- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
- case "$ac_file" in
- *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
- *) ac_comsub= ;;
- esac
- sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file
-fi; done
-rm -f conftest.subs
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='\([ ]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-CONFIG_HEADERS=${CONFIG_HEADERS-"config.h"}
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- echo creating $ac_file
-
- rm -f conftest.frag conftest.in conftest.out
- cp $ac_given_srcdir/$ac_file_in conftest.in
-
-EOF
-
-# Transform confdefs.h into a sed script conftest.vals that substitutes
-# the proper values into config.h.in to produce config.h. And first:
-# Protect against being on the right side of a sed subst in config.status.
-# Protect against being in an unquoted here document in config.status.
-rm -f conftest.vals
-cat > conftest.hdr <<\EOF
-s/[\\&%]/\\&/g
-s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-s%ac_d%ac_u%gp
-s%ac_u%ac_e%gp
-EOF
-sed -n -f conftest.hdr confdefs.h > conftest.vals
-rm -f conftest.hdr
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >> conftest.vals <<\EOF
-s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-EOF
-
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
-# Maximum number of lines to put in a single here document.
-ac_max_here_lines=12
-
-rm -f conftest.tail
-while :
-do
- ac_lines=`grep -c . conftest.vals`
- # grep -c gives empty output for an empty file on some AIX systems.
- if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
- # Write a limited-size here document to conftest.frag.
- echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
- echo 'CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-cat >> $CONFIG_STATUS <<\EOF
- rm -f conftest.frag conftest.h
- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $ac_file conftest.h 2>/dev/null; then
- echo "$ac_file is unchanged"
- rm -f conftest.h
- else
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
-
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
-#
-# end
diff --git a/apps/JAWS/clients/WebSTONE/src/configure.in b/apps/JAWS/clients/WebSTONE/src/configure.in
deleted file mode 100644
index 449a6a16cef..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/configure.in
+++ /dev/null
@@ -1,99 +0,0 @@
-# configure.in
-# Configure template for WebStone
-# Process this file with autoconf to produce a configure script.
-#
-# This file and all files contained in this directory are
-# copyright 1995, Silicon Graphics, Inc.
-#
-# This software is provided without support and without any obligation on the
-# part of Silicon Graphics, Inc. to assist in its use, correction, modification
-# or enhancement. There is no guarantee that this software will be included in
-# future software releases, and it probably will not be included.
-#
-# THIS SOFTWARE IS PROVIDED "AS IS" WITH NO WARRANTIES OF ANY KIND INCLUDING
-# THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-#
-# In no event will Silicon Graphics, Inc. be liable for any lost revenue or
-# profits or other special, indirect and consequential damages, even if
-# Silicon Graphics, Inc. has been advised of the possibility of such damages.
-
-AC_INIT(webclient.c)
-AC_CONFIG_HEADER(config.h)
-PRODUCT=webstone
-VERSION=2.0b6
-AC_DEFINE_UNQUOTED(PRODUCT, "$PRODUCT")
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
-AC_SUBST(PRODUCT)
-AC_SUBST(VERSION)
-AC_PREFIX_DEFAULT(bin)
-
-# set system type
-AC_CANONICAL_SYSTEM
-
-#
-# checks for programs
-#
-AC_PROG_CC
-AC_PROG_MAKE_SET
-AC_PROG_AWK
-
-
-# We use a path for perl so the #! line in bin/wscollect.pl will work.
-AC_PATH_PROG(PERL, perl, no)
-AC_SUBST(PERL)
-AC_SUBST(PERL_SCRIPTS)
-if test "$PERL" != no; then
- PERL_SCRIPTS="bin/wscollect.pl"
-else
- AC_MSG_WARN(Some functions may work correctly, since perl was not found)
-fi
-
-#
-# checks for libraries
-#
-# Replace `main' with a function in -lm:
-AC_CHECK_LIB(m, floor)
-AC_CHECK_LIB(compat, rexec)
-AC_CHECK_LIB(ucb, wait3)
-AC_CHECK_LIB(socket, connect, AC_SUBST(LIBS), , -lnsl)
-
-#
-# checks for header files
-#
-AC_HEADER_STDC
-AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS(fcntl.h limits.h sgtty.h sys/time.h unistd.h)
-
-#
-# checks for typedefs, structures, and compiler characteristics
-#
-AC_C_CONST
-AC_TYPE_SIZE_T
-AC_TYPE_SIGNAL
-AC_HEADER_TIME
-AC_STRUCT_TIMEZONE
-AC_TRY_COMPILE([#include <sys/time.h>],
- [struct timeval thetime; struct timezone thezone;
- gettimeofday(&thetime, &thezone); ],
- AC_DEFINE(USE_TIMEZONE), )
-
-#
-# checks for library functions
-#
-AC_FUNC_MEMCMP
-AC_TYPE_SIGNAL
-AC_FUNC_VPRINTF
-AC_FUNC_WAIT3
-AC_CHECK_FUNCS(gethostname gettimeofday select socket strerror)
-
-#
-# checks for system services
-#
-
-#
-# all done
-#
-AC_OUTPUT(Makefile)
-#
-# end
diff --git a/apps/JAWS/clients/WebSTONE/src/debug.h b/apps/JAWS/clients/WebSTONE/src/debug.h
deleted file mode 100644
index f7a3a0eaf74..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/debug.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/**************************************************************************
- $Header$
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-#ifndef __DEBUG_H__
-
-#define D_PRINTF debug && fprintf(debugfile,
-#define D_FLUSH );fflush(debugfile)
-
-#define __DEBUG_H__
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/errexit.c b/apps/JAWS/clients/WebSTONE/src/errexit.c
deleted file mode 100644
index 2d5a7de34f1..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/errexit.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-/* errexit call for general error handling */
-
-#include <stdio.h>
-#ifndef WIN32
-#include <errno.h>
-#include <netdb.h>
-#include <unistd.h>
-#endif /* WIN32 */
-#include <stdarg.h>
-#include <sys/types.h>
-
-#include "sysdep.h"
-#include "bench.h"
-
-#ifdef HAVE_VPRINTF
-#define VPRINTF(stderr, format, args) vfprintf((stderr), (format), (args))
-#else
-#ifdef HAVE_DOPRNT
-#define VPRINTF(stderr, format, args) _doprnt((format), (args), (stderr))
-#endif /* HAVE_DOPRNT */
-#endif /* HAVE_VPRINTF */
-
-/* print an error message and exit 1 */
-void
-errexit(const char *format, ...)
-{
-va_list args;
-char hostname[64] = "";
-pid_t PID;
-
- PID = getpid();
- gethostname(hostname, sizeof(hostname));
- fprintf(stderr, "%s PID %d: ", hostname, PID);
-
- va_start(args, format);
- VPRINTF(stderr, format, args);
- debug && VPRINTF(debugfile, format, args);
- va_end(args);
- fflush(stderr);
- exit(1);
-}
-/* that's it */
-
-/* print an error message and return -1 */
-int
-returnerr(const char *format, ...)
-{
-va_list args;
-char hostname[64] = "";
-pid_t PID;
-
- PID = getpid();
- gethostname(hostname, sizeof(hostname));
- fprintf(stderr, "%s PID %d: ", hostname, PID);
-
- va_start(args, format);
- VPRINTF(stderr, format, args);
- debug && VPRINTF(debugfile, format, args);
- va_end(args);
- fflush(stderr);
- debug && fflush(debugfile);
- return(-1);
-}
-/* that's it */
-
-/* print a debug message and then flush */
-int
-d_printf(const char *format, ...)
-{
-va_list args;
-
- va_start(args, format);
- VPRINTF(debugfile, format, args);
- va_end(args);
-
- fflush(debugfile);
- return 0;
-}
-/* that's it */
-
-/* returns the last network error as a string */
-char *neterrstr(void) {
-static char buf[200];
-
-#ifdef WIN32
- sprintf(buf, "WSAGetLastError() = %d", WSAGetLastError());
- WSASetLastError(0);
-#else
- sprintf(buf, "errno = %d: %s", errno, strerror(errno));
- errno = 0;
-#endif /* WIN32 */
-
- return buf;
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/gendata/genrand.mak b/apps/JAWS/clients/WebSTONE/src/gendata/genrand.mak
deleted file mode 100755
index 6202df261d1..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/gendata/genrand.mak
+++ /dev/null
@@ -1,227 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.10
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-!IF "$(CFG)" == ""
-CFG=genrand - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to genrand - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "genrand - Win32 Release" && "$(CFG)" !=\
- "genrand - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "genrand.mak" CFG="genrand - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "genrand - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "genrand - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "genrand - Win32 Debug"
-RSC=rc.exe
-CPP=cl.exe
-
-!IF "$(CFG)" == "genrand - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "WinRel"
-# PROP BASE Intermediate_Dir "WinRel"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "WinRel"
-# PROP Intermediate_Dir "WinRel"
-# PROP Target_Dir ""
-OUTDIR=.\WinRel
-INTDIR=.\WinRel
-
-ALL : ".\WinRel\genrand.exe"
-
-CLEAN :
- -@erase ".\WinRel\genrand.exe"
- -@erase ".\WinRel\genrand.obj"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE"\
- /Fp"$(INTDIR)/genrand.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\WinRel/
-CPP_SBRS=.\.
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/genrand.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:console /incremental:no\
- /pdb:"$(OUTDIR)/genrand.pdb" /machine:I386 /out:"$(OUTDIR)/genrand.exe"
-LINK32_OBJS= \
- ".\WinRel\genrand.obj"
-
-".\WinRel\genrand.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "genrand - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-OUTDIR=.\Debug
-INTDIR=.\Debug
-
-ALL : ".\Debug\genrand.exe" ".\Debug\genrand.bsc"
-
-CLEAN :
- -@erase ".\Debug\genrand.bsc"
- -@erase ".\Debug\genrand.exe"
- -@erase ".\Debug\genrand.ilk"
- -@erase ".\Debug\genrand.obj"
- -@erase ".\Debug\genrand.pdb"
- -@erase ".\Debug\genrand.sbr"
- -@erase ".\Debug\vc40.idb"
- -@erase ".\Debug\vc40.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FR /YX /c
-CPP_PROJ=/nologo /MLd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE"\
- /FR"$(INTDIR)/" /Fp"$(INTDIR)/genrand.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/"\
- /c
-CPP_OBJS=.\Debug/
-CPP_SBRS=.\Debug/
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/genrand.bsc"
-BSC32_SBRS= \
- ".\Debug\genrand.sbr"
-
-".\Debug\genrand.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
- odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/genrand.pdb" /debug /machine:I386 /out:"$(OUTDIR)/genrand.exe"
-LINK32_OBJS= \
- ".\Debug\genrand.obj"
-
-".\Debug\genrand.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-################################################################################
-# Begin Target
-
-# Name "genrand - Win32 Release"
-# Name "genrand - Win32 Debug"
-
-!IF "$(CFG)" == "genrand - Win32 Release"
-
-!ELSEIF "$(CFG)" == "genrand - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=\stone.jim\webstone.src\src\genrand.c
-DEP_CPP_GENRA=\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-NODEP_CPP_GENRA=\
- "..\config.h"\
-
-
-!IF "$(CFG)" == "genrand - Win32 Release"
-
-
-".\WinRel\genrand.obj" : $(SOURCE) $(DEP_CPP_GENRA) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF "$(CFG)" == "genrand - Win32 Debug"
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-".\Debug\genrand.obj" : $(SOURCE) $(DEP_CPP_GENRA) "$(INTDIR)"
- $(BuildCmds)
-
-".\Debug\genrand.sbr" : $(SOURCE) $(DEP_CPP_GENRA) "$(INTDIR)"
- $(BuildCmds)
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/apps/JAWS/clients/WebSTONE/src/genrand.c b/apps/JAWS/clients/WebSTONE/src/genrand.c
deleted file mode 100644
index 3aad47794fb..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/genrand.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-#include <stdio.h>
-#include <fcntl.h>
-#include <math.h>
-
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include "sysdep.h"
-
-void
-main(const int argc, char* argv[])
-{
- FILE* file;
- int i;
- int my_random;
- int size;
- char *cp;
-
- if (argc != 3) {
- printf("usage: %s file_size_in_bytes[K|M] name\n", argv[0]);
- exit(2);
- }
-
- if ((file = fopen(argv[2], "w")) == NULL) {
- perror("fopen");
- exit(1);
- }
-
- size = atoi(argv[1]);
- for (cp = argv[1]; *cp; cp++) {
- switch(*cp) {
- case 'k':
- case 'K':
- size *= 1024;
- break;
- case 'm':
- case 'M':
- size *= 1024*1024;
- break;
- }
- }
-
- for (i = 0; i < size; i++) {
- my_random = ((RANDOM() % 94) + 33);
- fputc((char)my_random, file);
- }
-
- fclose(file);
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/get.c b/apps/JAWS/clients/WebSTONE/src/get.c
deleted file mode 100644
index 26b9bca4a1e..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/get.c
+++ /dev/null
@@ -1,317 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-/* THIS IS WHERE WE GO OUT AND FETCH A URL */
-
-#include <stdio.h>
-#include <errno.h>
-
-#ifndef WIN32
-#include <sys/types.h>
-#include <sys/errno.h>
-#include <sys/socket.h>
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#endif /* WIN32 */
-
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#ifdef SUNOS
-#include <unistd.h>
-#endif
-#include <ctype.h>
-
-#ifdef WIN32
-#include <io.h>
-#include <windows.h>
-#include <winsock.h>
-#endif /* WIN32 */
-
-#include "sysdep.h"
-#include "bench.h"
-
-#define ACCEPT_COMMAND "Accept: */* HTTP/1.0\r\n\r\n"
-#define ACCEPT_COMMAND_LEN ((int)strlen(ACCEPT_COMMAND))
-#define MAXCOMMANDLEN 256
-#define HEADERBUFSIZ (8*1024)
-
-#define UPPER(c) (((c) >= 'a' && (c) <= 'z') ? (c) + 'A' - 'a' : (c))
-
-/* compare two strings with max length, ignoring case */
-int mystrincmp(const char *str1, const char *str2, int len) {
-register int diff;
-
- while (*str1 && *str2 && len--) {
- if (diff = UPPER(*str1) - UPPER(*str2))
- return diff < 0 ? -1 : 1;
- str1++;
- str2++;
- }
- return 0;
-}
-
-int
-get(char *loc, NETPORT port, char *url, rqst_timer_t *timer)
-{
- SOCKET sock = BADSOCKET_VALUE;
- int writelen;
- int bytesread;
- int totalbytesread;
- int headerlen;
- int bodylength;
- int contentlength = 0;
- int outputfile = -1;
- int status;
- char getcommand[MAXCOMMANDLEN];
- char headerbuffer[HEADERBUFSIZ+1];
- char *offset;
- char outputfilename[MAXPATHLEN];
- char version[100];
- int count;
-
-/*#define ABORTIVE_CLOSE 1*/
-#ifdef ABORTIVE_CLOSE
-#error don't enable this option
- struct linger {
- int l_onoff;
- int l_linger;
- } linger_opt;
-#endif /* ABORTIVE_CLOSE */
-
- /* can you really get an error from gettimeofday?? */
- if(GETTIMEOFDAY(&timer->entertime, &timer->entertimezone) != 0)
- {
- returnerr("Error retrieving entertime\n");
- goto error;
- }
- timer->valid = 1;
-
- if(GETTIMEOFDAY(&timer->beforeconnect, &timer->beforeconnectzone) != 0)
- {
- returnerr("Error retrieving beforeconnect\n");
- goto error;
- }
-
- sock = connectsock(loc, port, "tcp");
- if (BADSOCKET(sock))
- {
- D_PRINTF( "Call to connectsock returned %d (%s)\n", sock, neterrstr() );
- returnerr("Couldn't connect to WWW server: %s\n", neterrstr());
- goto error;
- }
-
-#ifdef ABORTIVE_CLOSE
-#error don't enable this option
- /* set up for abortive close */
- linger_opt.l_onoff = 1;
- linger_opt.l_linger = 0;
- if (setsockopt(sock, SOL_SOCKET, SO_LINGER,
- (char *) &linger_opt, sizeof(linger_opt)) < 0) {
- fprintf(stderr, "Can't set sockopt SO_LINGER");
- returnerr("Couldn't set SO_LINGER = 0\n");
- goto error;
- }
-#endif /* ABORTIVE_CLOSE */
-
- if(GETTIMEOFDAY(&timer->afterconnect, &timer->afterconnectzone) != 0)
- {
- NETCLOSE(sock);
- GETTIMEOFDAY(&timer->exittime, &timer->exittimezone);
- returnerr("Error retrieving afterconnect\n");
- goto error;
- }
-
- /*
- * SEND THE GET AND THE ACCEPT.
- */
- sprintf(getcommand, "GET %s HTTP/1.0\r\n%s", url,
- ACCEPT_COMMAND);
- D_PRINTF( "Writing to server: %s\n", getcommand );
- writelen = strlen(getcommand);
- status = NETWRITE(sock, getcommand, writelen);
- if(status != writelen)
- {
- returnerr("Error sending command line to server: %s\n",
- neterrstr());
- goto error;
- }
- /*
- * WE HAVE NOW SENT THE REQUEST SUCCESSFULLY.
- * WAIT FOR THE REPLY AND FIND THE HEADER
- */
-
- if(GETTIMEOFDAY(&timer->beforeheader, &timer->beforeheaderzone) != 0)
- {
- returnerr("Error retrieving beforeheader\n");
- goto error;
- }
-
- /* read the header and part of the file */
- totalbytesread = 0;
- headerlen = 0;
- while (totalbytesread < HEADERBUFSIZ)
- {
- bytesread = NETREAD(sock, headerbuffer+totalbytesread, HEADERBUFSIZ-totalbytesread);
- if (BADSOCKET(bytesread))
- {
- D_PRINTF( "Did not receive full header\n" );
- D_PRINTF( "NETREAD returned %d\n", bytesread );
- returnerr("Did not receive full header: %s\n",
- neterrstr());
- goto error;
- }
- totalbytesread += bytesread;
-
- /* search for end of header */
- headerbuffer[totalbytesread] = 0;
- if (offset = strstr(headerbuffer, "\n\n")) {
- headerlen = offset - headerbuffer + 2;
- break;
- } else if (offset = strstr(headerbuffer, "\n\r\n")) {
- headerlen = offset - headerbuffer + 3;
- break;
- }
- }
-
- if (headerlen == 0) {
- returnerr("Can't find the end of the header in \"%s\"\n", headerbuffer);
- goto error;
- }
-
- /* get and check status code from the first line of the header */
- count = sscanf(headerbuffer, "HTTP/%s %d", version, &status);
- if (count != 2) {
- returnerr("Bad status line in get(): %s\n", headerbuffer);
- goto error;
- }
- if (status < 200 || status > 300) {
- returnerr("Bad status (%d) in get() for url %s\n", status, url);
- goto error;
- }
-
- /* get the content length line from the header */
- offset = headerbuffer;
- while (offset < headerbuffer+headerlen && *offset) {
- if (*offset++ != '\n')
- continue;
-
- if (mystrincmp(offset, CONTENT_LENGTH_STRING, strlen(CONTENT_LENGTH_STRING)) == 0) {
- sscanf(offset+strlen(CONTENT_LENGTH_STRING), "%d", &contentlength);
- D_PRINTF( "Content-Length: %d\n", contentlength );
- }
- }
-
- if(GETTIMEOFDAY(&timer->afterheader, &timer->afterheaderzone) != 0)
- {
- returnerr("Error retrieving afterheader\n");
- goto error;
- }
-
- if(savefile)
- {
- sprintf(outputfilename,"/tmp/webstone.data.%d", (int)getpid());
- if((outputfile = open(outputfilename,(O_WRONLY|O_CREAT),0777)) < 0)
- {
- D_PRINTF( "outputfile %d %d\n", outputfile, errno );
- returnerr("Error saving file: %s\n", strerror(errno));
- goto error;
- }
- lseek(outputfile,1,SEEK_END); /* this is odd... JEF */
-
- /* if we have part of the file already, save that part */
- if(totalbytesread > headerlen)
- {
- write(outputfile, headerbuffer+headerlen, totalbytesread-headerlen);
- }
- }
-
- /* read the body of the file */
- do
- {
- bytesread = NETREAD(sock, headerbuffer, HEADERBUFSIZ);
- D_PRINTF( "Read %d bytes from socket %d\n", bytesread, sock );
-
- if (BADSOCKET(bytesread))
- {
- D_PRINTF( "Read returns %d, error: %s\n", bytesread,
- neterrstr() );
- returnerr("Error during read of page body. Read "
- "returns %d on socket %d, error: %s\n",
- bytesread, sock, neterrstr());
- goto error;
- }
-
- totalbytesread += bytesread;
-
- if (outputfile != -1 && bytesread)
- {
- write(outputfile, headerbuffer, bytesread);
- }
-
- } while (bytesread);
-
- /* done reading body */
- if ( contentlength && (totalbytesread - headerlen) != contentlength)
- {
- D_PRINTF( "Warning: file length (%d) doesn't match Content-length (%d)\n",
- totalbytesread - headerlen, contentlength);
- }
-
- bodylength = totalbytesread - headerlen;
-
- if(GETTIMEOFDAY(&timer->afterbody, &timer->afterbodyzone) != 0)
- {
- returnerr("Error retrieving afterbody\n");
- goto error;
- }
-
- NETCLOSE(sock);
- if (outputfile != -1)
- {
- close(outputfile);
- }
-
- D_PRINTF( "Read %d bytes, %d of that being body\n",
- totalbytesread, bodylength );
-
- if(GETTIMEOFDAY(&timer->exittime, &timer->exittimezone) != 0)
- {
- D_PRINTF( "Error retrieving exit time: %s\n", strerror(errno) );
- returnerr("Error retrieving exit time\n");
- goto error;
- }
- timer->valid = 2;
- timer->totalbytes = totalbytesread;
- timer->bodybytes = bodylength;
-
- D_PRINTF( "get returning totalbytes %d body %d valid %d\n",
- timer->totalbytes, timer->bodybytes, timer->valid );
-
- D_PRINTF( "get returning start %d, end %d\n",
- timer->entertime.tv_sec, timer->exittime.tv_sec );
-
- D_PRINTF( "get returning connect %d, request %d, header %d, body %d\n",
- timer->afterconnect.tv_sec, timer->beforeheader.tv_sec,
- timer->afterheader.tv_sec, timer->afterbody.tv_sec );
-
- return 0;
-
-error:
- if (!BADSOCKET(sock))
- NETCLOSE(sock);
- if (outputfile != -1)
- close(outputfile);
- GETTIMEOFDAY(&timer->exittime, &timer->exittimezone); /* needed? */
- return -1;
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/get.h b/apps/JAWS/clients/WebSTONE/src/get.h
deleted file mode 100644
index 3f9fb7a1e76..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/get.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __GET_H__
-#define __GET_H__
-/**************************************************************************
- $Header$
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs where *
- * deveolped by SGI for public use. If anychanges are made to this code *
- * please try to get the changes back to the author. Feel free to make *
- * modfications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-extern int get(char *loc, int port, char *url, rqst_timer_t *timer);
-
-#endif /* !__GET_H__ */
diff --git a/apps/JAWS/clients/WebSTONE/src/getopt.c b/apps/JAWS/clients/WebSTONE/src/getopt.c
deleted file mode 100644
index db2b6c6b91f..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/getopt.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* this is a public domain version of getopt */
-/* FTP Site: ftp.uu.net/pub/OS/unix/bsd-sources/lib/librpc/etc/getopt.c */
-
-#include <stdio.h>
-#include <string.h>
-
-#define MYNULL 0
-#define ERR(s, c) if(opterr){\
- extern size_t strlen();\
- extern int write();\
- char errbuf[2];\
- errbuf[0] = c; errbuf[1] = '\n';\
- (void) write(2, argv[0], strlen(argv[0]));\
- (void) write(2, s, strlen(s));\
- (void) write(2, errbuf, 2);}
-
-int opterr = 1;
-int optind = 1;
-int optopt;
-char *optarg;
-
-int
-getopt(argc, argv, opts)
-int argc;
-char **argv, *opts;
-{
- static int sp = 1;
- register int c;
- register char *cp;
-
- if(sp == 1)
- if(optind >= argc ||
- argv[optind][0] != '-' || argv[optind][1] == '\0')
- return(EOF);
- else if(strcmp(argv[optind], "--") == MYNULL) {
- optind++;
- return(EOF);
- }
- optopt = c = argv[optind][sp];
- if(c == ':' || (cp=strchr(opts, c)) == NULL) {
- ERR(": unknown option, -", c);
- if(argv[optind][++sp] == '\0') {
- optind++;
- sp = 1;
- }
- return('?');
- }
- if(*++cp == ':') {
- if(argv[optind][sp+1] != '\0')
- optarg = &argv[optind++][sp+1];
- else if(++optind >= argc) {
- ERR(": argument missing for -", c);
- sp = 1;
- return('?');
- } else
- optarg = argv[optind++];
- sp = 1;
- } else {
- if(argv[optind][++sp] == '\0') {
- sp = 1;
- optind++;
- }
- optarg = NULL;
- }
- return(c);
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/gettimeofday.c b/apps/JAWS/clients/WebSTONE/src/gettimeofday.c
deleted file mode 100644
index 7d5614b8189..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/gettimeofday.c
+++ /dev/null
@@ -1,56 +0,0 @@
-
-/*
- * This file defines functions that are required for unix compatibility.
- *
- * These functions are not available in the Microsoft C/C++ Run Time
- * and the Win32 API.
- *
- * The following functions list may not be complete
- *
- * FUNCTIONS:
- * SHARED _gettimeofday
- *
- */
-
-
-#include <windows.h>
-#include <errno.h>
-#include <winsock.h> /* For definition of "timeval" structure */
-#include <sys/timeb.h> /* For prototype of "_ftime()" */
-
-
-/*
- * gettimeofday() -- gets the current time in elapsed seconds and
- * microsends since GMT Jan 1, 1970.
- *
- * ARGUMENTS: - Pointer to a timeval struct to return the time into
- *
- * RETURN CODES: - 0 on success
- * -1 on failure
- */
-int gettimeofday(curTimeP)
- struct timeval *curTimeP;
-{
-struct _timeb localTime;
-
- if (curTimeP == (struct timeval *) NULL) {
- errno = EFAULT;
- return (-1);
- }
-
- /*
- * Compute the elapsed time since Jan 1, 1970 by first
- * obtaining the elapsed time from the system using the
- * _ftime(..) call and then convert to the "timeval"
- * equivalent.
- */
-
- _ftime(&localTime);
-
- curTimeP->tv_sec = localTime.time + localTime.timezone;
- curTimeP->tv_usec = localTime.millitm * 1000;
-
- return(0);
-}
-
-
diff --git a/apps/JAWS/clients/WebSTONE/src/install-sh b/apps/JAWS/clients/WebSTONE/src/install-sh
deleted file mode 100755
index 89fc9b098b8..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/install-sh
+++ /dev/null
@@ -1,238 +0,0 @@
-#! /bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-#
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-tranformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
diff --git a/apps/JAWS/clients/WebSTONE/src/logfile27859 b/apps/JAWS/clients/WebSTONE/src/logfile27859
deleted file mode 100644
index a65984d6f9a..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/logfile27859
+++ /dev/null
@@ -1,9 +0,0 @@
- entertime 867794927.279188
- beforeconnect 867794927.279189
- afterconnect 867794927.280504
- beforeheader 867794927.280604
- afterheader 867794927.299170
- afterbody 867794932.215967
- exittime 867794932.216306
- total bytes 5243057
- body bytes 5242880
diff --git a/apps/JAWS/clients/WebSTONE/src/master/webmaster.mak b/apps/JAWS/clients/WebSTONE/src/master/webmaster.mak
deleted file mode 100755
index 354ce87ee86..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/master/webmaster.mak
+++ /dev/null
@@ -1,476 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-!IF "$(CFG)" == ""
-CFG=Webmaster - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to Webmaster - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "Webmaster - Win32 Release" && "$(CFG)" !=\
- "Webmaster - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "webmaster.mak" CFG="Webmaster - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Webmaster - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "Webmaster - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "Webmaster - Win32 Debug"
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "Webmaster - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "WinRel"
-# PROP BASE Intermediate_Dir "WinRel"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "WinRel"
-# PROP Intermediate_Dir "WinRel"
-OUTDIR=.\WinRel
-INTDIR=.\WinRel
-
-ALL : "$(OUTDIR)\webmaster.exe" "$(OUTDIR)\webmaster.bsc"
-
-CLEAN :
- -@erase "$(INTDIR)\bench.obj"
- -@erase "$(INTDIR)\bench.sbr"
- -@erase "$(INTDIR)\errexit.obj"
- -@erase "$(INTDIR)\errexit.sbr"
- -@erase "$(INTDIR)\getopt.obj"
- -@erase "$(INTDIR)\getopt.sbr"
- -@erase "$(INTDIR)\gettimeofday.obj"
- -@erase "$(INTDIR)\gettimeofday.sbr"
- -@erase "$(INTDIR)\parse_file_list.obj"
- -@erase "$(INTDIR)\parse_file_list.sbr"
- -@erase "$(INTDIR)\rexec.obj"
- -@erase "$(INTDIR)\rexec.sbr"
- -@erase "$(INTDIR)\statistics.obj"
- -@erase "$(INTDIR)\statistics.sbr"
- -@erase "$(INTDIR)\sysdep.obj"
- -@erase "$(INTDIR)\sysdep.sbr"
- -@erase "$(INTDIR)\timefunc.obj"
- -@erase "$(INTDIR)\timefunc.sbr"
- -@erase "$(INTDIR)\webmaster.obj"
- -@erase "$(INTDIR)\webmaster.sbr"
- -@erase "$(OUTDIR)\webmaster.bsc"
- -@erase "$(OUTDIR)\webmaster.exe"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FR /YX /c
-# ADD CPP /nologo /MTd /W3 /GX /O2 /I "WIN32" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FR /YX /c
-CPP_PROJ=/nologo /MTd /W3 /GX /O2 /I "WIN32" /D "WIN32" /D "NDEBUG" /D\
- "_CONSOLE" /FR"$(INTDIR)/" /Fp"$(INTDIR)/webmaster.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\WinRel/
-CPP_SBRS=.\WinRel/
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/webmaster.bsc"
-BSC32_SBRS= \
- "$(INTDIR)\bench.sbr" \
- "$(INTDIR)\errexit.sbr" \
- "$(INTDIR)\getopt.sbr" \
- "$(INTDIR)\gettimeofday.sbr" \
- "$(INTDIR)\parse_file_list.sbr" \
- "$(INTDIR)\rexec.sbr" \
- "$(INTDIR)\statistics.sbr" \
- "$(INTDIR)\sysdep.sbr" \
- "$(INTDIR)\timefunc.sbr" \
- "$(INTDIR)\webmaster.sbr"
-
-"$(OUTDIR)\webmaster.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-LINK32_FLAGS=wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no\
- /pdb:"$(OUTDIR)/webmaster.pdb" /machine:I386 /out:"$(OUTDIR)/webmaster.exe"
-LINK32_OBJS= \
- "$(INTDIR)\bench.obj" \
- "$(INTDIR)\errexit.obj" \
- "$(INTDIR)\getopt.obj" \
- "$(INTDIR)\gettimeofday.obj" \
- "$(INTDIR)\parse_file_list.obj" \
- "$(INTDIR)\rexec.obj" \
- "$(INTDIR)\statistics.obj" \
- "$(INTDIR)\sysdep.obj" \
- "$(INTDIR)\timefunc.obj" \
- "$(INTDIR)\webmaster.obj"
-
-"$(OUTDIR)\webmaster.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "Webmaster - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "WinDebug"
-# PROP BASE Intermediate_Dir "WinDebug"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "WinDebug"
-# PROP Intermediate_Dir "WinDebug"
-OUTDIR=.\WinDebug
-INTDIR=.\WinDebug
-
-ALL : "$(OUTDIR)\webmaster.exe" "$(OUTDIR)\webmaster.bsc"
-
-CLEAN :
- -@erase "$(INTDIR)\bench.obj"
- -@erase "$(INTDIR)\bench.sbr"
- -@erase "$(INTDIR)\errexit.obj"
- -@erase "$(INTDIR)\errexit.sbr"
- -@erase "$(INTDIR)\getopt.obj"
- -@erase "$(INTDIR)\getopt.sbr"
- -@erase "$(INTDIR)\gettimeofday.obj"
- -@erase "$(INTDIR)\gettimeofday.sbr"
- -@erase "$(INTDIR)\parse_file_list.obj"
- -@erase "$(INTDIR)\parse_file_list.sbr"
- -@erase "$(INTDIR)\rexec.obj"
- -@erase "$(INTDIR)\rexec.sbr"
- -@erase "$(INTDIR)\statistics.obj"
- -@erase "$(INTDIR)\statistics.sbr"
- -@erase "$(INTDIR)\sysdep.obj"
- -@erase "$(INTDIR)\sysdep.sbr"
- -@erase "$(INTDIR)\timefunc.obj"
- -@erase "$(INTDIR)\timefunc.sbr"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(INTDIR)\webmaster.obj"
- -@erase "$(INTDIR)\webmaster.sbr"
- -@erase "$(OUTDIR)\webmaster.bsc"
- -@erase "$(OUTDIR)\webmaster.exe"
- -@erase "$(OUTDIR)\webmaster.ilk"
- -@erase "$(OUTDIR)\webmaster.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FR /YX /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "WIN32" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FR /YX /c
-CPP_PROJ=/nologo /MTd /W3 /Gm /GX /Zi /Od /I "WIN32" /D "WIN32" /D "_DEBUG" /D\
- "_CONSOLE" /FR"$(INTDIR)/" /Fp"$(INTDIR)/webmaster.pch" /YX /Fo"$(INTDIR)/"\
- /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\WinDebug/
-CPP_SBRS=.\WinDebug/
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/webmaster.bsc"
-BSC32_SBRS= \
- "$(INTDIR)\bench.sbr" \
- "$(INTDIR)\errexit.sbr" \
- "$(INTDIR)\getopt.sbr" \
- "$(INTDIR)\gettimeofday.sbr" \
- "$(INTDIR)\parse_file_list.sbr" \
- "$(INTDIR)\rexec.sbr" \
- "$(INTDIR)\statistics.sbr" \
- "$(INTDIR)\sysdep.sbr" \
- "$(INTDIR)\timefunc.sbr" \
- "$(INTDIR)\webmaster.sbr"
-
-"$(OUTDIR)\webmaster.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# SUBTRACT LINK32 /pdb:none
-LINK32_FLAGS=wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/webmaster.pdb" /debug /machine:I386\
- /out:"$(OUTDIR)/webmaster.exe"
-LINK32_OBJS= \
- "$(INTDIR)\bench.obj" \
- "$(INTDIR)\errexit.obj" \
- "$(INTDIR)\getopt.obj" \
- "$(INTDIR)\gettimeofday.obj" \
- "$(INTDIR)\parse_file_list.obj" \
- "$(INTDIR)\rexec.obj" \
- "$(INTDIR)\statistics.obj" \
- "$(INTDIR)\sysdep.obj" \
- "$(INTDIR)\timefunc.obj" \
- "$(INTDIR)\webmaster.obj"
-
-"$(OUTDIR)\webmaster.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-################################################################################
-# Begin Target
-
-# Name "Webmaster - Win32 Release"
-# Name "Webmaster - Win32 Debug"
-
-!IF "$(CFG)" == "Webmaster - Win32 Release"
-
-!ELSEIF "$(CFG)" == "Webmaster - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=..\bench.c
-DEP_CPP_BENCH=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\bench.obj" : $(SOURCE) $(DEP_CPP_BENCH) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\bench.sbr" : $(SOURCE) $(DEP_CPP_BENCH) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\errexit.c
-DEP_CPP_ERREX=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\errexit.obj" : $(SOURCE) $(DEP_CPP_ERREX) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\errexit.sbr" : $(SOURCE) $(DEP_CPP_ERREX) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\webmaster.c
-DEP_CPP_WEBMA=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\webmaster.obj" : $(SOURCE) $(DEP_CPP_WEBMA) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\webmaster.sbr" : $(SOURCE) $(DEP_CPP_WEBMA) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\timefunc.c
-DEP_CPP_TIMEF=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\timefunc.obj" : $(SOURCE) $(DEP_CPP_TIMEF) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\timefunc.sbr" : $(SOURCE) $(DEP_CPP_TIMEF) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\sysdep.c
-DEP_CPP_SYSDE=\
- "..\config.h"\
- "..\sysdep.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\sysdep.obj" : $(SOURCE) $(DEP_CPP_SYSDE) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\sysdep.sbr" : $(SOURCE) $(DEP_CPP_SYSDE) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\statistics.c
-DEP_CPP_STATI=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\statistics.obj" : $(SOURCE) $(DEP_CPP_STATI) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\statistics.sbr" : $(SOURCE) $(DEP_CPP_STATI) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\rexec.c
-DEP_CPP_REXEC=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\rexec.obj" : $(SOURCE) $(DEP_CPP_REXEC) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\rexec.sbr" : $(SOURCE) $(DEP_CPP_REXEC) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=..\getopt.c
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\getopt.obj" : $(SOURCE) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\getopt.sbr" : $(SOURCE) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=\nanbor\ACE_wrappers\apps\JAWS\clients\WebSTONE\src\parse_file_list.c
-DEP_CPP_PARSE=\
- "..\bench.h"\
- "..\config.h"\
- "..\sysdep.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\parse_file_list.obj" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\parse_file_list.sbr" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=\nanbor\ACE_wrappers\apps\JAWS\clients\WebSTONE\src\gettimeofday.c
-DEP_CPP_GETTI=\
- {$(INCLUDE)}"\sys\timeb.h"\
-
-
-BuildCmds= \
- $(CPP) $(CPP_PROJ) $(SOURCE) \
-
-
-"$(INTDIR)\gettimeofday.obj" : $(SOURCE) $(DEP_CPP_GETTI) "$(INTDIR)"
- $(BuildCmds)
-
-"$(INTDIR)\gettimeofday.sbr" : $(SOURCE) $(DEP_CPP_GETTI) "$(INTDIR)"
- $(BuildCmds)
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/buffer.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/buffer.h
deleted file mode 100644
index 0ceb060d766..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/buffer.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * buffer.h: For performing buffered I/O on a file or socket descriptor.
- *
- * This is an abstraction to allow I/O to be performed regardless of the
- * current system. That way, an integer file descriptor can be used under
- * UNIX but a stdio FILE structure could be used on systems which don't
- * support that or don't support it as efficiently.
- *
- * Two abstractions are defined: A file buffer, and a network buffer. A
- * distinction is made so that mmap() can be used on files (but is not
- * required). Also, the file buffer takes a file name as the object to
- * open instead of a file descriptor. A lot of the network buffering
- * is almost an exact duplicate of the non-mmap file buffering.
- *
- * If an error occurs, system-independent means to obtain an error string
- * are also provided. However, if the underlying system is UNIX the error
- * may not be accurate in a threaded environment.
- *
- * Rob McCool
- *
- */
-
-
-#ifndef BUFFER_H
-#define BUFFER_H
-
-#ifdef XP_WIN32
-#include <nt/ntbuffer.h>
-#else
-
-
-/*
- * We need certain system specific functions and symbols.
- */
-
-#include "file.h"
-#include "net.h"
-
-/*
- * Requires that the macro MALLOC be set to a "safe" malloc that will
- * exit if no memory is available. If not under MCC httpd, define MALLOC
- * to be the real malloc and play with fire, or make your own function.
- */
-
-#include "../netsite.h"
-
-#ifdef FILE_UNIX_MMAP
-#include <sys/types.h> /* caddr_t */
-#endif
-
-
-/* ------------------------------ Structures ------------------------------ */
-
-#ifdef FILE_UNIX_MMAP
-typedef struct {
- SYS_FILE fd;
- caddr_t fp;
- int len;
-
- char *inbuf; /* for buffer_grab */
- int cursize;
-
- int pos;
- char *errmsg;
-} filebuf;
-
-#else
-
-typedef struct {
- SYS_FILE fd;
-
- int pos, cursize, maxsize;
- char *inbuf;
- char *errmsg;
-} filebuf;
-
-#endif
-
-typedef struct {
- SYS_NETFD sd;
-
- int pos, cursize, maxsize, rdtimeout;
- char *inbuf;
- char *errmsg;
-} netbuf;
-
-
-/* -------------------------------- Macros -------------------------------- */
-
-
-/*
- * netbuf_getc gets a character from the given network buffer and returns
- * it. (as an integer).
- *
- * It will return (int) IO_ERROR for an error and (int) IO_EOF for
- * an error condition or EOF respectively.
- */
-
-#define netbuf_getc(b) \
- ((b)->pos != (b)->cursize ? (int)((b)->inbuf[(b)->pos++]) : netbuf_next(b,1))
-
-#ifdef FILE_UNIX_MMAP
-#define filebuf_getc(b) ((b)->pos == (b)->len ? IO_EOF : (b)->fp[(b)->pos++])
-#else
-#define filebuf_getc(b) \
- ((b)->pos != (b)->cursize ? (int)((b)->inbuf[(b)->pos++]) : filebuf_next(b,1))
-#endif
-
-
-/*
- * buffer_error returns the last error that occurred with buffer. Don't use
- * this unless you know an error occurred. Independent of network/file type.
- */
-
-#define buffer_error(b) ((b)->errmsg)
-
-/*
- * buffer_flush flushes any data after the current pos to the file
- * descriptor fd. Regardless of buffer type.
- */
-
-#define buffer_flush(buf,fd) \
- system_write(fd,&(buf)->inbuf[(buf)->pos], (buf)->cursize - (buf)->pos)
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * buffer_open opens a new buffer reading the specified file, with an I/O
- * buffer of size sz, and returns a new buffer structure which will hold
- * the data.
- *
- * If FILE_UNIX_MMAP is defined, this may return NULL. If it does, check
- * system_errmsg to get a message about the error.
- */
-
-filebuf *filebuf_open(SYS_FILE fd, int sz);
-netbuf *netbuf_open(SYS_NETFD sd, int sz);
-
-/*
- * filebuf_open_nostat is a convenience function for mmap() buffer opens,
- * if you happen to have the stat structure already.
- */
-
-#ifdef FILE_UNIX_MMAP
-#include <sys/stat.h>
-filebuf *filebuf_open_nostat(SYS_FILE fd, int sz, struct stat *finfo);
-
-#else
-#define filebuf_open_nostat(fd,sz,finfo) filebuf_open(fd,sz)
-#endif
-
-/*
- * buffer_next loads size more bytes into the given buffer and returns the
- * first one, or BUFFER_EOF on EOF and BUFFER_ERROR on error.
- */
-
-int filebuf_next(filebuf *buf, int advance);
-int netbuf_next(netbuf *buf, int advance);
-
-/*
- * buffer_close deallocates a buffer and closes its associated files
- * (does not close a network socket).
- */
-
-void filebuf_close(filebuf *buf);
-void netbuf_close(netbuf *buf);
-
-/*
- * buffer_grab will set the buffer's inbuf array to an array of sz bytes
- * from the buffer's associated object. It returns the number of bytes
- * actually read (between 1 and sz). It returns IO_EOF upon EOF or IO_ERROR
- * upon error. The cursize entry of the structure will reflect the size
- * of the iobuf array.
- *
- * The buffer will take care of allocation and deallocation of this array.
- */
-
-int filebuf_grab(filebuf *buf, int sz);
-int netbuf_grab(netbuf *buf, int sz);
-
-
-/*
- * netbuf_buf2sd will send n bytes from the (probably previously read)
- * buffer and send them to sd. If sd is -1, they are discarded. If n is
- * -1, it will continue until EOF is recieved. Returns IO_ERROR on error
- * and the number of bytes sent any other time.
- */
-
-int netbuf_buf2sd(netbuf *buf, SYS_NETFD sd, int len);
-
-/*
- * filebuf_buf2sd assumes that nothing has been read from the filebuf,
- * and just sends the file out to the given socket. Returns IO_ERROR on error
- * and the number of bytes sent otherwise.
- *
- * Does not currently support you having read from the buffer previously. This
- * can be changed transparently.
- */
-
-int filebuf_buf2sd(filebuf *buf, SYS_NETFD sd);
-
-#endif
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/cinfo.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/cinfo.h
deleted file mode 100644
index 543147104a2..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/cinfo.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * cinfo.h: Content Information for a file, i.e. its type, etc.
- *
- * See cinfo.c for dependency information.
- *
- * Rob McCool
- */
-
-
-
-#ifndef CINFO_H
-#define CINFO_H
-
-
-
-/* ------------------------------ Constants ------------------------------- */
-
-
-/*
- * This will be the first string in the file, followed by x.x version
- * where x is an integer.
- *
- * Updated due to trendy name change
- */
-
-#define MCC_MT_MAGIC "#--Mosaic Communications Corporation MIME Information"
-#define MCC_MT_MAGIC_LEN 53
-#define NCC_MT_MAGIC "#--Netscape Communications Corporation MIME Information"
-#define NCC_MT_MAGIC_LEN 55
-
-/* The character which separates extensions with cinfo_find */
-
-#define CINFO_SEPARATOR '.'
-
-/* The maximum length of a line in this file */
-
-#define CINFO_MAX_LEN 1024
-
-/* The hash function for the database. Hashed on extension. */
-#include <ctype.h>
-#define CINFO_HASH(s) (isalpha(s[0]) ? tolower(s[0]) - 'a' : 26)
-
-/* The hash table size for that function */
-#define CINFO_HASHSIZE 27
-
-
-/* ------------------------------ Structures ------------------------------ */
-
-
-/*
- * The ContentInfo structure.
- *
- * Currently, we support the following attributes:
- *
- * 1. Type: This identifies what kind of data is in the file.
- * 2. Encoding: Identifies any compression or otherwise content-independent
- * transformation which has been applied to the file (uuencode, etc.)
- * 3. Language: Identifies the language a text document is in.
- * 4. Description: A text string describing the file.
- * 5. Viewer: The program to use to view the file.
- *
- * Multiple items are separated with a comma, e.g.
- * encoding="x-gzip, x-uuencode"
- */
-
-typedef struct {
- char *type;
- char *encoding;
- char *language;
-} cinfo;
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * cinfo_init initializes the content info system. Call this before
- * cinfo_merge.
- */
-
-void cinfo_init(void);
-
-/*
- * cinfo_terminate frees the database for shutdown.
- */
-
-void cinfo_terminate(void);
-
-/*
- * cinfo_merge merges the contents of the given filename with the current
- * cinfo database. It returns NULL upon success and a string (which you
- * must deallocate) upon error.
- */
-
-char *cinfo_merge(char *fn);
-
-
-/*
- * cinfo_find finds any content information for the given uri. The file name
- * is the string following the last / in the uri. Multiple extensions are
- * separated by CINFO_SEPARATOR. You may pass in a filename instead of uri.
- *
- * Returns a newly allocated cinfo structure with the information it
- * finds. The elements of this structure are coming right out of the types
- * database and so if you change it or want to keep it around for long you
- * should strdup it. You should free only the structure itself when finished
- * with it.
- *
- * If there is no information for any one of the extensions it
- * finds, it will ignore that extension. If it cannot find information for
- * any of the extensions, it will return NULL.
- */
-
-cinfo *cinfo_find(char *uri);
-
-/*
- * cinfo_lookup finds the information about the given content-type, and
- * returns a cinfo structure so you can look up description and icon.
- */
-
-cinfo *cinfo_lookup(char *type);
-
-/*
- * cinfo_dump_database dumps the current database to the given file desc.
- */
-
-#include <stdio.h>
-void cinfo_dump_database(FILE *dump);
-
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h
deleted file mode 100644
index 04954857c0c..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * crit.h: Critical section abstraction. Used in threaded servers to protect
- * areas where two threads can interfere with each other.
- *
- * Condvars are condition variables that are used for thread-thread
- * synchronization.
- *
- * Rob McCool
- */
-
-#ifndef CRIT_H
-#define CRIT_H
-
-
-#ifdef USE_NSPR
-#include <nspr/prmon.h>
-typedef PRMonitor* CRITICAL;
-#else
-typedef void *CRITICAL;
-#endif
-
-/*
- * crit_init creates and returns a new critical section variable. At the
- * time of creation no one has entered it.
- */
-#ifdef USE_NSPR
-#define crit_init() PR_NewMonitor(0)
-#else
-#define crit_init() (NULL)
-#endif
-
-/*
- * crit_enter enters a critical section. If someone is already in the
- * section, the calling thread is blocked until that thread exits.
- */
-#ifdef USE_NSPR
-#define crit_enter(id) PR_EnterMonitor(id)
-#else
-#define crit_enter(id) (0)
-#endif
-
-/*
- * crit_exit exits a critical section. If another thread is blocked waiting
- * to enter, it will be unblocked and given ownership of the section.
- */
-#ifdef USE_NSPR
-#define crit_exit(id) PR_ExitMonitor(id)
-#else
-#define crit_exit(id) (0)
-#endif
-
-/*
- * crit_terminate removes a previously allocated critical section variable.
- */
-#ifdef USE_NSPR
-#define crit_terminate(id) PR_DestroyMonitor(id)
-#else
-#define crit_terminate(id) (0)
-#endif
-
-
-#ifdef USE_NSPR
-typedef PRMonitor* CONDVAR;
-#else
-typedef void* CONDVAR;
-#endif
-
-/*
- * condvar_init initializes and returns a new condition variable. You
- * must provide a critical section to be associated with this condition
- * variable.
- */
-#ifdef USE_NSPR
-#define condvar_init(crit) (crit)
-#else
-#define condvar_init(crit) (crit)
-#endif
-
-/*
- * condvar_wait blocks on the given condition variable. The calling thread
- * will be blocked until another thread calls condvar_notify on this variable.
- * The caller must have entered the critical section associated with this
- * condition variable prior to waiting for it.
- */
-#ifdef USE_NSPR
-#define condvar_wait(cv) (PR_Wait(cv, LL_MAXINT))
-#else
-#define condvar_wait(cv) (0)
-#endif
-
-/*
- * condvar_notify awakens any threads blocked on the given condition
- * variable. The caller must have entered the critical section associated
- * with this variable first.
- */
-#ifdef USE_NSPR
-#define condvar_notify(cv) (PR_Notify(cv))
-#else
-#define condvar_notify(cv) (0)
-#endif
-
-/*
- * condvar_terminate frees the given previously allocated condition variable
- */
-#ifdef USE_NSPR
-#define condvar_terminate(cv) (0)
-#else
-#define condvar_terminate(cv) (0)
-#endif
-
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h
deleted file mode 100644
index 24b44ad0cd0..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * daemon.h: Things related to the accepting connections
- *
- * Rob McCool
- */
-
-
-#ifndef DAEMON_H
-#define DAEMON_H
-
-#ifdef XP_WIN32
-#include <nt/ntdaemon.h>
-#else
-
-#include "net.h"
-#include "session.h"
-
-#include <pwd.h> /* struct passwd */
-
-
-/* ------------------------------- Defines -------------------------------- */
-
-
-#define child_exit exit
-
-
-/* Codes for child_status */
-#define CHILD_EMPTY_SLOT 0xfe
-#define CHILD_AWAIT_CONNECT 0xff
-#define CHILD_PROCESSING 0x00
-#define CHILD_READING 0x01
-#define CHILD_WRITING 0x02
-#define CHILD_RESOLVING 0x03
-
-
-typedef struct {
- char *ipstr;
- int port;
- struct passwd *pw;
- char *chr;
- char *pidfn;
- void (*rcback)(int);
-#if defined(DAEMON_UNIX_POOL) || defined(DAEMON_UNIX_MOBRULE)
- int maxprocs, minprocs, proclife;
-#endif
-#ifdef NET_SSL
- char *secure_keyfn;
- char *secure_certfn;
- char *secure_dongle;
- int secure_auth;
- int secure_session_timeout;
- int security;
-#endif
-} daemon_s;
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-#ifdef MCC_PROXY
-/* A unique serial number assigned to each child. */
-extern int child_serial;
-#endif
-
-/*
- * daemon_run accepts whether or not it should detach from its parent process,
- * and a daemon structure as its arguments. The daemon structure contains
- * a port number, a root directory to chroot to (can be NULL), a filename to
- * log the daemon pid to (can be NULL). daemon_run never returns.
- *
- * child_callback is a function which will be called every time a new
- * connection is recieved. Session is a new session ID.
- *
- * rcback is a function which is a restart function: When SIGHUP is received,
- * this function will be called. You may give SIG_DFL if you don't want to
- * support restarting. The rcback will be passed SIGHUP.
- *
- * pw is the passwd entry to run the daemon as. If the effective user id is
- * root, daemon_run will try to set its uid and gid to the user pointed
- * to by this structure. You may pass NULL.
- */
-
-void daemon_run(int det, void (*child_callback)(Session *), daemon_s *d);
-
-/*
- * fork is a wrapper for the system's fork function. This closes the listen
- * socket for the mob. This also makes sure that a threaded daemon only gets
- * the calling thread and not all of them.
- */
-
-pid_t child_fork(void);
-
-
-/*
- * Set status to the given code for statistics reporting
- */
-
-#ifdef DAEMON_STATS
-void child_status(int code);
-#else
-#define child_status(code) (void)(code)
-#endif
-
-
-#endif
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h
deleted file mode 100644
index 0a3edb0633e..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * dll.h: Handle dynamically linked libraries
- *
- * Rob McCool
- */
-
-#ifndef _DLL_H
-#define _DLL_H
-
-#include "systems.h"
-
-#if defined(DLL_CAPABLE)
-
-/* --------------------------- Data structures ---------------------------- */
-
-
-#if defined(USE_NSPR)
-#include <nspr/prlink.h>
-typedef int DLHANDLE;
-
-#elif defined(DLL_DLOPEN)
-#include <dlfcn.h>
-typedef void *DLHANDLE; /* DLOPEN */
-
-#elif defined(DLL_HPSHL)
-#include <dl.h>
-typedef shl_t DLHANDLE; /* HP_SHL */
-
-#elif defined(DLL_WIN32)
-typedef HINSTANCE DLHANDLE; /* WIN32 */
-#endif
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * dll_open loads the library at the given path into memory, and returns
- * a handle to be used in later calls to dll_findsym and dll_close.
- */
-#if defined(USE_NSPR)
-#define dll_open(libfn) PR_LoadLibrary(libfn)
-
-#elif defined(DLL_DLOPEN)
-#define dll_open(libfn) dlopen(libfn, DLL_DLOPEN_FLAGS)
-
-#elif defined(DLL_HPSHL)
-#define dll_open(libfn) shl_load((libfn), BIND_IMMEDIATE, NULL)
-
-#elif defined(DLL_WIN32)
-DLHANDLE dll_open(char *libfn);
-#endif
-
-
-/*
- * dll_findsym looks for a symbol with the given name in the library
- * pointed to by the given handle. Returns a pointer to the named function.
- */
-
-#if defined(USE_NSPR)
-#define dll_findsym(dlp, name) PR_FindSymbol(name)
-
-#elif defined(DLL_DLOPEN)
-#define dll_findsym(dlp, name) dlsym(dlp, name)
-
-#elif defined(DLL_HPSHL)
-void *dll_findsym(DLHANDLE dlp, char *name);
-
-#elif defined(DLL_WIN32)
-#define dll_findsym(dlp, name) GetProcAddress(dlp, name)
-#endif
-
-
-/*
- * dll_error returns a string describing the last error on the given handle
- */
-#if defined(USE_NSPR)
-#define dll_error(dlp) system_errmsg(0)
-
-#elif defined(DLL_DLOPEN)
-#define dll_error(dlp) dlerror()
-
-#elif defined(DLL_HPSHL)
-#define dll_error(dlp) system_errmsg(0)
-
-#elif defined(DLL_WIN32)
-#define dll_error(dlp) system_errmsg(0)
-#endif
-
-
-/*
- * dll_close closes the previously opened library given by handle
- */
-#if defined(USE_NSPR)
-int dll_close(void *arg);
-
-#elif defined(DLL_DLOPEN)
-#define dll_close dlclose
-
-#elif defined (DLL_HPSHL)
-#define dll_close shl_unload
-
-#elif defined(DLL_WIN32)
-#define dll_close FreeLibrary
-#endif
-
-
-#endif /* DLL_CAPABLE */
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/ereport.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/ereport.h
deleted file mode 100644
index c10c6ab86b5..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/ereport.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * ereport.h: Records transactions, reports errors to administrators, etc.
- *
- * Rob McCool
- */
-
-
-#ifndef EREPORT_H
-#define EREPORT_H
-
-
-#include "../base/session.h" /* Session structure */
-#ifdef XP_UNIX
-#include <pwd.h> /* struct passwd */
-#endif /* XP_UNIX */
-
-
-/* ------------------------------ Constants ------------------------------- */
-
-
-/*
- * The maximum length of an error message. NOT RUN-TIME CHECKED
- */
-
-#define MAX_ERROR_LEN 8192
-
-/* A warning is a minor mishap, such as a 404 being issued. */
-#define LOG_WARN 0
-
-/*
- * A misconfig is when there is a syntax error or permission violation in
- * a config. file.
- */
-#define LOG_MISCONFIG 1
-
-/*
- * Security warnings are issued when authentication fails, or a host is
- * given a 403 return code.
- */
-#define LOG_SECURITY 2
-
-/*
- * A failure is when a request could not be fulfilled due to an internal
- * problem, such as a CGI script exiting prematurely, or a filesystem
- * permissions problem.
- */
-#define LOG_FAILURE 3
-
-/*
- * A catastrophe is a fatal server error such as running out of
- * memory or processes, or a system call failing, or even a server crash.
- * The server child cannot recover from a catastrophe.
- */
-#define LOG_CATASTROPHE 4
-
-/*
- * Informational message, of no concern.
- */
-#define LOG_INFORM 5
-
-/*
- * The time format to use in the error log
- */
-
-#define ERR_TIMEFMT "[%d/%b/%Y:%H:%M:%S]"
-
-
-/* The fd you will get if you are reporting errors to SYSLOG */
-
-#define ERRORS_TO_SYSLOG -1
-
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * ereport logs an error of the given degree and formats the arguments with
- * the printf() style fmt. Returns whether the log was successful. Records
- * the current date.
- */
-
-int ereport(int degree, char *fmt, ...);
-
-/*
- * ereport_init initializes the error logging subsystem and opens the static
- * file descriptors. It returns NULL upon success and an error string upon
- * error. If a userpw is given, the logs will be chowned to that user.
- *
- * email is the address of a person to mail upon catastrophic error. It
- * can be NULL if no e-mail is desired. ereport_init will not duplicate
- * its own copy of this string; you must make sure it stays around and free
- * it when you shut down the server.
- */
-
-char *ereport_init(char *err_fn, char *email, struct passwd *pw);
-
-/*
- * log_terminate closes the error and common log file descriptors.
- */
-void ereport_terminate(void);
-
-/* For restarts */
-SYS_FILE ereport_getfd(void);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h
deleted file mode 100644
index 8218f875075..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-// EVENTLOG.H
-//
-// This file contains the defines that make NT an installable service.
-//
-// 1/12/95 aruna
-//
-
-// Functions in eventlog.c
-
-VOID InitializeAdminLogging(PCHAR ServiceName, PCHAR MessageFile);
-VOID InitializeHttpdLogging(PCHAR ServiceName, PCHAR MessageFile);
-VOID InitializeHttpsLogging(PCHAR ServiceName, PCHAR MessageFile);
-
-VOID TerminateAdminLogging();
-VOID TerminateHttpdLogging();
-VOID TerminateHttpsLogging();
-
-VOID LogErrorEvent(PCHAR ServiceName, WORD fwEventType, WORD fwCategory, DWORD IDEvent,
- LPTSTR chMsg, LPTSTR lpszMsg);
-
-// Functions in error.c
-
-VOID ReportError(PCHAR ErrorMsg);
-
-BOOL CALLBACK ErrorDialogProc(
- HWND hDlg,
- UINT message,
- WPARAM wParam,
- LPARAM lParam
- );
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h
deleted file mode 100644
index f0efb1ee582..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * file.h: system specific functions for reading/writing files
- *
- * Rob McCool
- */
-
-
-#ifndef FILE_H
-#define FILE_H
-
-#ifdef XP_WIN32
-#include <nt/ntfile.h>
-#else
-
-
-#include "netsite.h"
-#include "systems.h"
-
-
-/*
- * I cheat: These are set up such that system_read can be a macro for read
- * under UNIX. IO_OKAY is anything positive.
- */
-
-#define IO_OKAY 1
-#define IO_ERROR -1
-#define IO_EOF 0
-
-
-#ifdef FILE_STDIO
-#include <stdio.h>
-
-#elif defined(FILE_UNIX)
-#include <sys/types.h>
-#include <sys/file.h>
-#include <fcntl.h>
-#include <unistd.h>
-#endif
-
-
-/* -------------------------- File related defs --------------------------- */
-
-
-/* The disk page size on this machine. */
-#define FILE_BUFFERSIZE 4096
-
-
-/*
- * The fd data type for this system.
- */
-
-#if defined(FILE_STDIO)
-typedef FILE* SYS_FILE;
-#define SYS_ERROR_FD NULL
-#define SYS_STDERR stderr
-
-#elif defined(FILE_UNIX)
-typedef int SYS_FILE;
-#define SYS_ERROR_FD -1
-#define SYS_STDERR STDERR_FILENO
-
-#else
-#error "undefined file typing for current system"
-#endif
-
-#ifdef XP_UNIX
-#define FILE_PATHSEP '/'
-#define FILE_PARENT "../"
-
-#define system_chdir chdir
-#endif
-
-
-/*
- * system_fread reads sz bytes from fd into to buf, return number of bytes
- * read, or IO_EOF if EOF, or IO_ERROR if error.
- */
-
-#if defined(FILE_STDIO)
-int system_fread(SYS_FILE fd, char *buf, int sz);
-
-#elif defined(FILE_UNIX)
-#define system_fread(fd,buf,sz) read(fd,buf,sz)
-
-#endif
-
-/*
- * system_fopenRO opens a given file for reading only
- * system_fopenWA opens a given file for writing, appending new output
- */
-
-#if defined(FILE_STDIO)
-#define system_fopenRO(path) fopen(path,"r")
-#define system_fopenWA(path) fopen(path,"a")
-#define system_fopenRW(path) fopen(path,"w")
-
-#elif defined(FILE_UNIX)
-#define system_fopenRO(path) open(path, O_RDONLY)
-#define system_fopenWA(path) \
- open(path, O_RDWR | O_CREAT | O_APPEND, 0644)
-#define system_fopenRW(path) \
- open(path, O_RDWR | O_CREAT, 0644)
-
-#endif
-
-
-/*
- * system_fclose closes the file fd
- */
-
-#if defined(FILE_STDIO)
-#define system_fclose(fd) fclose(fd)
-
-#elif defined(FILE_UNIX)
-#define system_fclose(fd) close(fd)
-#endif
-
-/*
- * This call stops core dumps in a portable way. Returns -1 on error.
- */
-
-int system_nocoredumps(void);
-
-
-#if defined(FILE_STDIO)
-#define system_lseek fseek
-
-#elif defined(FILE_UNIX)
-#define system_lseek lseek
-
-#endif
-
-/*
- * system_write writes sz bytes from buf to fd. The handler function should
- * handle partial writes and anything else like that. Returns IO_*
- */
-
-int system_fwrite(SYS_FILE fd,char *buf,int sz);
-
-/*
- * system_fwrite_atomic locks the given fd before writing to it. This avoids
- * interference between simultaneous writes. Returns IO_*
- */
-
-int system_fwrite_atomic(SYS_FILE fd, char *buf, int sz);
-
-/*
- * system_errmsg returns the last error that occured while processing file
- * descriptor fd. fd does not have to be specified (if the error is a global
- * such as in UNIX systems). PPS: Rob is a halfwit. This parameter is useless.
- */
-
-#ifndef FILE_WIN32
-#include <errno.h>
-
-extern char *sys_errlist[];
-#define file_notfound() (errno == ENOENT)
-#define system_errmsg(fd) (sys_errlist[errno])
-#endif
-
-
-/*
- * flock locks a file against interference from other processes
- * ulock unlocks it.
- */
-#ifdef BSD_FLOCK
-#include <sys/file.h>
-#define system_initlock(fd) (0)
-#define system_flock(fd) flock(fd, LOCK_EX)
-#define system_ulock(fd) flock(fd, LOCK_UN)
-
-#elif defined(FILE_UNIX)
-#include <unistd.h>
-#define system_initlock(fd) (0)
-#define system_flock(fd) lockf(fd, F_LOCK, 0)
-#define system_ulock(fd) lockf(fd, F_ULOCK, 0)
-
-#endif
-
-
-/*
- * unix2local converts a unix-style pathname to a local one
- */
-
-#ifdef XP_UNIX
-#define file_unix2local(path,p2) strcpy(p2,path)
-#endif
-
-/* -------------------------- Dir related defs ---------------------------- */
-
-
-#ifdef XP_UNIX
-#include <dirent.h>
-typedef DIR* SYS_DIR;
-typedef struct dirent SYS_DIRENT;
-#define dir_open opendir
-#define dir_read readdir
-#define dir_close closedir
-
-#endif
-#endif
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/minissl.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/minissl.h
deleted file mode 100644
index 1a00323cecc..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/minissl.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-
-/* Prototypes for SSL I/O functions */
-extern int SSL_Close(int);
-extern int SSL_Socket(int, int, int);
-extern int SSL_GetSockOpt(int, int, int, void *, int *);
-extern int SSL_SetSockOpt(int, int, int, const void *, int);
-extern int SSL_Bind(int, const void *, int);
-extern int SSL_Listen(int, int);
-extern int SSL_Accept(int, void *, int *);
-extern int SSL_Read(int, void *, int);
-extern int SSL_Write(int, const void *, int);
-extern int SSL_GetPeerName(int, void *, int *);
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h
deleted file mode 100644
index 0454ac69c84..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * net.h: system specific networking definitions
- *
- * Rob McCool
- */
-
-
-#ifndef NET_H
-#define NET_H
-
-#include "systems.h"
-
-#include "file.h" /* for client file descriptors */
-
-#include "pblock.h" /* for client data block */
-
-
-/* This should be a user-given parameter later */
-#define NET_BUFFERSIZE 8192
-/* So should this. */
-#define NET_READ_TIMEOUT 120
-#define NET_WRITE_TIMEOUT 300
-
-#define SSL_HANDSHAKE_TIMEOUT 300
-
-#if defined(NET_SOCKETS) || defined(NET_SSL)
-
-#ifdef NET_WINSOCK
-#include <winsock.h>
-#else /* XP_UNIX */
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h> /* sockaddr and in_addr */
-#include <arpa/inet.h> /* inet_ntoa */
-#include <netdb.h> /* hostent stuff */
-#endif /* NET_WINSOCK */
-
-#ifdef NET_SSL
-#include "minissl.h"
-#endif
-
-
-/* -------------------------------- Global -------------------------------- */
-
-extern int net_enabledns;
-
-
-
-/* ------------------------------ Data types ------------------------------ */
-
-
-#ifdef NET_WINSOCK
-typedef SOCKET SYS_NETFD;
-#else /* XP_UNIX */
-typedef int SYS_NETFD;
-#endif /* NET_WINSOCK */
-
-#define SYS_NET_ERRORFD -1
-
-
-/* -------------------------------- Macros -------------------------------- */
-
-
-/* These may be different for non-UNIX systems. */
-
-
-#ifndef NET_SSL
-#define net_socket socket
-#define net_setsockopt setsockopt
-#define net_getsockopt getsockopt
-#define net_listen listen
-#define net_select select
-#define net_getpeername getpeername
-
-#ifndef NET_WINSOCK
-#define net_close(sd) close(sd)
-#define net_bind bind
-#else /* NET_WINSOCK */
-#define net_close(sd) closesocket(sd)
-#define system_netbind bind
-int net_bind(SYS_NETFD s, const struct sockaddr *name, int namelen);
-#endif /* NET_WINSOCK */
-
-#ifdef DAEMON_NEEDS_SEMAPHORE
-#define net_accept net_semaccept
-#else /* ! DAEMON_NEEDS_SEMAPHORE */
-#define net_accept accept
-#endif /* DAEMON_NEEDS_SEMAPHORE */
-
-#else /* NET_SSL */
-#define net_close(sd) SSL_Close(sd)
-#define net_socket SSL_Socket
-#define net_setsockopt SSL_SetSockOpt
-#define net_getsockopt SSL_GetSockOpt
-
-#ifdef XP_UNIX
-#define net_bind SSL_Bind
-#else /* WIN32 */
-#define system_netbind SSL_Bind
-int net_bind(SYS_NETFD s, const struct sockaddr *name, int namelen);
-#endif /* XP_UNIX */
-
-#define net_listen SSL_Listen
-#define net_select select /* !!! */
-#define net_getpeername SSL_GetPeerName
-#define net_accept SSL_Accept
-#endif /* ! NET_SSL */
-
-
-/* Users should never call the system_net* functions. */
-#ifdef NET_SSL
-#define system_netread(sd, buf, sz) SSL_Read(sd, buf, sz)
-#define system_netwrite SSL_Write
-#else /* ! NET_SSL */
-
-#if !defined(NET_WINSOCK)
-#define system_netread(sd, buf, sz) read(sd, buf, sz)
-#define system_netwrite write
-#else /* NET_WINSOCK */
-#define system_netread(sd, buf, sz) recv(sd, buf, sz, 0)
-#define system_netwrite(sd, buf, sz) send(sd, buf, sz, 0)
-#endif /* ! NET_WINSOCK */
-
-#endif /* NET_SSL */
-
-int net_read(SYS_NETFD sd, char *buf, int sz, int timeout);
-int net_write(SYS_NETFD sd, char *buf, int sz);
-
-#ifdef DAEMON_NEEDS_SEMAPHORE
-int net_semaccept_init(int port);
-int net_semaccept(int s, struct sockaddr *addr, int *addrlen);
-void net_semaccept_terminate(void);
-#endif
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * net_find_fqdn looks through the given hostent structure trying to find
- * a FQDN for the host. If it finds none, it returns NULL. Otherwise, it
- * returns a newly allocated copy of that string.
- */
-
-char *net_find_fqdn(struct hostent *p);
-
-/*
- * net_ip2host transforms the given textual IP number into a FQDN. If it
- * can't find a FQDN, it will return what it can get. Otherwise, NULL.
- *
- * verify is whether or not the function should verify the hostname it
- * gets. This takes an extra query but is safer for use in access control.
- */
-
-char *net_ip2host(char *ip, int verify);
-
-/*
- * net_sendmail sends mail to the specified recipient with the given subject
- * and message. Currently uses external programs.
- */
-
-int net_sendmail(char *to, char *subject, char *msg);
-
-#endif
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nodelock.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nodelock.h
deleted file mode 100644
index c69c553a2a4..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nodelock.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * nodelock.h: licensing stuff
- */
-
-#ifndef _NODELOCK_H
-#define _NODELOCK_H
-
-/*
- * Do the initial IP address check and expiration date check. Reads a file
- * from admin/config, as #define'd.
- *
- * Returns 1 on error, 0 on AOK.
- */
-
-int node_init(void);
-
-/*
- * Check the expiration date against The Now.
- *
- * Returns 1 on error, 0 on AOK.
- */
-
-int node_check(void);
-
-/*
- * So how we doin, license
- *
- * Returns 1 on error, 0 on AOK
- */
-int node_status(void);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h
deleted file mode 100644
index 7c85116faee..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h
+++ /dev/null
@@ -1,736 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/* DO NOT EDIT THIS FILE - it is automatically generated */
-
-struct _NtError {
- int ErrorNumber;
- char *ErrorString;
- struct _NtError *next;
-} ;
-
-typedef struct _NtError NtError;
-
-NtError NtErrorStrings[] = {
-{ 0 , "ERROR_SUCCESS" },
-{ 0 , "NO_ERROR" },
-{ 1 , "ERROR_INVALID_FUNCTION" },
-{ 2 , "ERROR_FILE_NOT_FOUND" },
-{ 3 , "ERROR_PATH_NOT_FOUND" },
-{ 4 , "ERROR_TOO_MANY_OPEN_FILES" },
-{ 5 , "ERROR_ACCESS_DENIED" },
-{ 6 , "ERROR_INVALID_HANDLE" },
-{ 7 , "ERROR_ARENA_TRASHED" },
-{ 8 , "ERROR_NOT_ENOUGH_MEMORY" },
-{ 9 , "ERROR_INVALID_BLOCK" },
-{ 10 , "ERROR_BAD_ENVIRONMENT" },
-{ 11 , "ERROR_BAD_FORMAT" },
-{ 12 , "ERROR_INVALID_ACCESS" },
-{ 13 , "ERROR_INVALID_DATA" },
-{ 14 , "ERROR_OUTOFMEMORY" },
-{ 15 , "ERROR_INVALID_DRIVE" },
-{ 16 , "ERROR_CURRENT_DIRECTORY" },
-{ 17 , "ERROR_NOT_SAME_DEVICE" },
-{ 18 , "ERROR_NO_MORE_FILES" },
-{ 19 , "ERROR_WRITE_PROTECT" },
-{ 20 , "ERROR_BAD_UNIT" },
-{ 21 , "ERROR_NOT_READY" },
-{ 22 , "ERROR_BAD_COMMAND" },
-{ 23 , "ERROR_CRC" },
-{ 24 , "ERROR_BAD_LENGTH" },
-{ 25 , "ERROR_SEEK" },
-{ 26 , "ERROR_NOT_DOS_DISK" },
-{ 27 , "ERROR_SECTOR_NOT_FOUND" },
-{ 28 , "ERROR_OUT_OF_PAPER" },
-{ 29 , "ERROR_WRITE_FAULT" },
-{ 30 , "ERROR_READ_FAULT" },
-{ 31 , "ERROR_GEN_FAILURE" },
-{ 32 , "ERROR_SHARING_VIOLATION" },
-{ 33 , "ERROR_LOCK_VIOLATION" },
-{ 34 , "ERROR_WRONG_DISK" },
-{ 36 , "ERROR_SHARING_BUFFER_EXCEEDED" },
-{ 38 , "ERROR_HANDLE_EOF" },
-{ 39 , "ERROR_HANDLE_DISK_FULL" },
-{ 50 , "ERROR_NOT_SUPPORTED" },
-{ 51 , "ERROR_REM_NOT_LIST" },
-{ 52 , "ERROR_DUP_NAME" },
-{ 53 , "ERROR_BAD_NETPATH" },
-{ 54 , "ERROR_NETWORK_BUSY" },
-{ 55 , "ERROR_DEV_NOT_EXIST" },
-{ 56 , "ERROR_TOO_MANY_CMDS" },
-{ 57 , "ERROR_ADAP_HDW_ERR" },
-{ 58 , "ERROR_BAD_NET_RESP" },
-{ 59 , "ERROR_UNEXP_NET_ERR" },
-{ 60 , "ERROR_BAD_REM_ADAP" },
-{ 61 , "ERROR_PRINTQ_FULL" },
-{ 62 , "ERROR_NO_SPOOL_SPACE" },
-{ 63 , "ERROR_PRINT_CANCELLED" },
-{ 64 , "ERROR_NETNAME_DELETED" },
-{ 65 , "ERROR_NETWORK_ACCESS_DENIED" },
-{ 66 , "ERROR_BAD_DEV_TYPE" },
-{ 67 , "ERROR_BAD_NET_NAME" },
-{ 68 , "ERROR_TOO_MANY_NAMES" },
-{ 69 , "ERROR_TOO_MANY_SESS" },
-{ 70 , "ERROR_SHARING_PAUSED" },
-{ 71 , "ERROR_REQ_NOT_ACCEP" },
-{ 72 , "ERROR_REDIR_PAUSED" },
-{ 80 , "ERROR_FILE_EXISTS" },
-{ 82 , "ERROR_CANNOT_MAKE" },
-{ 83 , "ERROR_FAIL_I24" },
-{ 84 , "ERROR_OUT_OF_STRUCTURES" },
-{ 85 , "ERROR_ALREADY_ASSIGNED" },
-{ 86 , "ERROR_INVALID_PASSWORD" },
-{ 87 , "ERROR_INVALID_PARAMETER" },
-{ 88 , "ERROR_NET_WRITE_FAULT" },
-{ 89 , "ERROR_NO_PROC_SLOTS" },
-{ 100 , "ERROR_TOO_MANY_SEMAPHORES" },
-{ 101 , "ERROR_EXCL_SEM_ALREADY_OWNED" },
-{ 102 , "ERROR_SEM_IS_SET" },
-{ 103 , "ERROR_TOO_MANY_SEM_REQUESTS" },
-{ 104 , "ERROR_INVALID_AT_INTERRUPT_TIME" },
-{ 105 , "ERROR_SEM_OWNER_DIED" },
-{ 106 , "ERROR_SEM_USER_LIMIT" },
-{ 107 , "ERROR_DISK_CHANGE" },
-{ 108 , "ERROR_DRIVE_LOCKED" },
-{ 109 , "ERROR_BROKEN_PIPE" },
-{ 110 , "ERROR_OPEN_FAILED" },
-{ 111 , "ERROR_BUFFER_OVERFLOW" },
-{ 112 , "ERROR_DISK_FULL" },
-{ 113 , "ERROR_NO_MORE_SEARCH_HANDLES" },
-{ 114 , "ERROR_INVALID_TARGET_HANDLE" },
-{ 117 , "ERROR_INVALID_CATEGORY" },
-{ 118 , "ERROR_INVALID_VERIFY_SWITCH" },
-{ 119 , "ERROR_BAD_DRIVER_LEVEL" },
-{ 120 , "ERROR_CALL_NOT_IMPLEMENTED" },
-{ 121 , "ERROR_SEM_TIMEOUT" },
-{ 122 , "ERROR_INSUFFICIENT_BUFFER" },
-{ 123 , "ERROR_INVALID_NAME" },
-{ 124 , "ERROR_INVALID_LEVEL" },
-{ 125 , "ERROR_NO_VOLUME_LABEL" },
-{ 126 , "ERROR_MOD_NOT_FOUND" },
-{ 127 , "ERROR_PROC_NOT_FOUND" },
-{ 128 , "ERROR_WAIT_NO_CHILDREN" },
-{ 129 , "ERROR_CHILD_NOT_COMPLETE" },
-{ 130 , "ERROR_DIRECT_ACCESS_HANDLE" },
-{ 131 , "ERROR_NEGATIVE_SEEK" },
-{ 132 , "ERROR_SEEK_ON_DEVICE" },
-{ 133 , "ERROR_IS_JOIN_TARGET" },
-{ 134 , "ERROR_IS_JOINED" },
-{ 135 , "ERROR_IS_SUBSTED" },
-{ 136 , "ERROR_NOT_JOINED" },
-{ 137 , "ERROR_NOT_SUBSTED" },
-{ 138 , "ERROR_JOIN_TO_JOIN" },
-{ 139 , "ERROR_SUBST_TO_SUBST" },
-{ 140 , "ERROR_JOIN_TO_SUBST" },
-{ 141 , "ERROR_SUBST_TO_JOIN" },
-{ 142 , "ERROR_BUSY_DRIVE" },
-{ 143 , "ERROR_SAME_DRIVE" },
-{ 144 , "ERROR_DIR_NOT_ROOT" },
-{ 145 , "ERROR_DIR_NOT_EMPTY" },
-{ 146 , "ERROR_IS_SUBST_PATH" },
-{ 147 , "ERROR_IS_JOIN_PATH" },
-{ 148 , "ERROR_PATH_BUSY" },
-{ 149 , "ERROR_IS_SUBST_TARGET" },
-{ 150 , "ERROR_SYSTEM_TRACE" },
-{ 151 , "ERROR_INVALID_EVENT_COUNT" },
-{ 152 , "ERROR_TOO_MANY_MUXWAITERS" },
-{ 153 , "ERROR_INVALID_LIST_FORMAT" },
-{ 154 , "ERROR_LABEL_TOO_LONG" },
-{ 155 , "ERROR_TOO_MANY_TCBS" },
-{ 156 , "ERROR_SIGNAL_REFUSED" },
-{ 157 , "ERROR_DISCARDED" },
-{ 158 , "ERROR_NOT_LOCKED" },
-{ 159 , "ERROR_BAD_THREADID_ADDR" },
-{ 160 , "ERROR_BAD_ARGUMENTS" },
-{ 161 , "ERROR_BAD_PATHNAME" },
-{ 162 , "ERROR_SIGNAL_PENDING" },
-{ 164 , "ERROR_MAX_THRDS_REACHED" },
-{ 167 , "ERROR_LOCK_FAILED" },
-{ 170 , "ERROR_BUSY" },
-{ 173 , "ERROR_CANCEL_VIOLATION" },
-{ 174 , "ERROR_ATOMIC_LOCKS_NOT_SUPPORTED" },
-{ 180 , "ERROR_INVALID_SEGMENT_NUMBER" },
-{ 182 , "ERROR_INVALID_ORDINAL" },
-{ 183 , "ERROR_ALREADY_EXISTS" },
-{ 186 , "ERROR_INVALID_FLAG_NUMBER" },
-{ 187 , "ERROR_SEM_NOT_FOUND" },
-{ 188 , "ERROR_INVALID_STARTING_CODESEG" },
-{ 189 , "ERROR_INVALID_STACKSEG" },
-{ 190 , "ERROR_INVALID_MODULETYPE" },
-{ 191 , "ERROR_INVALID_EXE_SIGNATURE" },
-{ 192 , "ERROR_EXE_MARKED_INVALID" },
-{ 193 , "ERROR_BAD_EXE_FORMAT" },
-{ 194 , "ERROR_ITERATED_DATA_EXCEEDS_64k" },
-{ 195 , "ERROR_INVALID_MINALLOCSIZE" },
-{ 196 , "ERROR_DYNLINK_FROM_INVALID_RING" },
-{ 197 , "ERROR_IOPL_NOT_ENABLED" },
-{ 198 , "ERROR_INVALID_SEGDPL" },
-{ 199 , "ERROR_AUTODATASEG_EXCEEDS_64k" },
-{ 200 , "ERROR_RING2SEG_MUST_BE_MOVABLE" },
-{ 201 , "ERROR_RELOC_CHAIN_XEEDS_SEGLIM" },
-{ 202 , "ERROR_INFLOOP_IN_RELOC_CHAIN" },
-{ 203 , "ERROR_ENVVAR_NOT_FOUND" },
-{ 205 , "ERROR_NO_SIGNAL_SENT" },
-{ 206 , "ERROR_FILENAME_EXCED_RANGE" },
-{ 207 , "ERROR_RING2_STACK_IN_USE" },
-{ 208 , "ERROR_META_EXPANSION_TOO_LONG" },
-{ 209 , "ERROR_INVALID_SIGNAL_NUMBER" },
-{ 210 , "ERROR_THREAD_1_INACTIVE" },
-{ 212 , "ERROR_LOCKED" },
-{ 214 , "ERROR_TOO_MANY_MODULES" },
-{ 215 , "ERROR_NESTING_NOT_ALLOWED" },
-{ 230 , "ERROR_BAD_PIPE" },
-{ 231 , "ERROR_PIPE_BUSY" },
-{ 232 , "ERROR_NO_DATA" },
-{ 233 , "ERROR_PIPE_NOT_CONNECTED" },
-{ 234 , "ERROR_MORE_DATA" },
-{ 240 , "ERROR_VC_DISCONNECTED" },
-{ 254 , "ERROR_INVALID_EA_NAME" },
-{ 255 , "ERROR_EA_LIST_INCONSISTENT" },
-{ 259 , "ERROR_NO_MORE_ITEMS" },
-{ 266 , "ERROR_CANNOT_COPY" },
-{ 267 , "ERROR_DIRECTORY" },
-{ 275 , "ERROR_EAS_DIDNT_FIT" },
-{ 276 , "ERROR_EA_FILE_CORRUPT" },
-{ 277 , "ERROR_EA_TABLE_FULL" },
-{ 278 , "ERROR_INVALID_EA_HANDLE" },
-{ 282 , "ERROR_EAS_NOT_SUPPORTED" },
-{ 288 , "ERROR_NOT_OWNER" },
-{ 298 , "ERROR_TOO_MANY_POSTS" },
-{ 299 , "ERROR_PARTIAL_COPY" },
-{ 317 , "ERROR_MR_MID_NOT_FOUND" },
-{ 487 , "ERROR_INVALID_ADDRESS" },
-{ 534 , "ERROR_ARITHMETIC_OVERFLOW" },
-{ 535 , "ERROR_PIPE_CONNECTED" },
-{ 536 , "ERROR_PIPE_LISTENING" },
-{ 994 , "ERROR_EA_ACCESS_DENIED" },
-{ 995 , "ERROR_OPERATION_ABORTED" },
-{ 996 , "ERROR_IO_INCOMPLETE" },
-{ 997 , "ERROR_IO_PENDING" },
-{ 998 , "ERROR_NOACCESS" },
-{ 999 , "ERROR_SWAPERROR" },
-{ 1001 , "ERROR_STACK_OVERFLOW" },
-{ 1002 , "ERROR_INVALID_MESSAGE" },
-{ 1003 , "ERROR_CAN_NOT_COMPLETE" },
-{ 1004 , "ERROR_INVALID_FLAGS" },
-{ 1005 , "ERROR_UNRECOGNIZED_VOLUME" },
-{ 1006 , "ERROR_FILE_INVALID" },
-{ 1007 , "ERROR_FULLSCREEN_MODE" },
-{ 1008 , "ERROR_NO_TOKEN" },
-{ 1009 , "ERROR_BADDB" },
-{ 1010 , "ERROR_BADKEY" },
-{ 1011 , "ERROR_CANTOPEN" },
-{ 1012 , "ERROR_CANTREAD" },
-{ 1013 , "ERROR_CANTWRITE" },
-{ 1014 , "ERROR_REGISTRY_RECOVERED" },
-{ 1015 , "ERROR_REGISTRY_CORRUPT" },
-{ 1016 , "ERROR_REGISTRY_IO_FAILED" },
-{ 1017 , "ERROR_NOT_REGISTRY_FILE" },
-{ 1018 , "ERROR_KEY_DELETED" },
-{ 1019 , "ERROR_NO_LOG_SPACE" },
-{ 1020 , "ERROR_KEY_HAS_CHILDREN" },
-{ 1021 , "ERROR_CHILD_MUST_BE_VOLATILE" },
-{ 1022 , "ERROR_NOTIFY_ENUM_DIR" },
-{ 1051 , "ERROR_DEPENDENT_SERVICES_RUNNING" },
-{ 1052 , "ERROR_INVALID_SERVICE_CONTROL" },
-{ 1053 , "ERROR_SERVICE_REQUEST_TIMEOUT" },
-{ 1054 , "ERROR_SERVICE_NO_THREAD" },
-{ 1055 , "ERROR_SERVICE_DATABASE_LOCKED" },
-{ 1056 , "ERROR_SERVICE_ALREADY_RUNNING" },
-{ 1057 , "ERROR_INVALID_SERVICE_ACCOUNT" },
-{ 1058 , "ERROR_SERVICE_DISABLED" },
-{ 1059 , "ERROR_CIRCULAR_DEPENDENCY" },
-{ 1060 , "ERROR_SERVICE_DOES_NOT_EXIST" },
-{ 1061 , "ERROR_SERVICE_CANNOT_ACCEPT_CTRL" },
-{ 1062 , "ERROR_SERVICE_NOT_ACTIVE" },
-{ 1063 , "ERROR_FAILED_SERVICE_CONTROLLER_CONNECT" },
-{ 1064 , "ERROR_EXCEPTION_IN_SERVICE" },
-{ 1065 , "ERROR_DATABASE_DOES_NOT_EXIST" },
-{ 1066 , "ERROR_SERVICE_SPECIFIC_ERROR" },
-{ 1067 , "ERROR_PROCESS_ABORTED" },
-{ 1068 , "ERROR_SERVICE_DEPENDENCY_FAIL" },
-{ 1069 , "ERROR_SERVICE_LOGON_FAILED" },
-{ 1070 , "ERROR_SERVICE_START_HANG" },
-{ 1071 , "ERROR_INVALID_SERVICE_LOCK" },
-{ 1072 , "ERROR_SERVICE_MARKED_FOR_DELETE" },
-{ 1073 , "ERROR_SERVICE_EXISTS" },
-{ 1074 , "ERROR_ALREADY_RUNNING_LKG" },
-{ 1075 , "ERROR_SERVICE_DEPENDENCY_DELETED" },
-{ 1076 , "ERROR_BOOT_ALREADY_ACCEPTED" },
-{ 1077 , "ERROR_SERVICE_NEVER_STARTED" },
-{ 1078 , "ERROR_DUPLICATE_SERVICE_NAME" },
-{ 1100 , "ERROR_END_OF_MEDIA" },
-{ 1101 , "ERROR_FILEMARK_DETECTED" },
-{ 1102 , "ERROR_BEGINNING_OF_MEDIA" },
-{ 1103 , "ERROR_SETMARK_DETECTED" },
-{ 1104 , "ERROR_NO_DATA_DETECTED" },
-{ 1105 , "ERROR_PARTITION_FAILURE" },
-{ 1106 , "ERROR_INVALID_BLOCK_LENGTH" },
-{ 1107 , "ERROR_DEVICE_NOT_PARTITIONED" },
-{ 1108 , "ERROR_UNABLE_TO_LOCK_MEDIA" },
-{ 1109 , "ERROR_UNABLE_TO_UNLOAD_MEDIA" },
-{ 1110 , "ERROR_MEDIA_CHANGED" },
-{ 1111 , "ERROR_BUS_RESET" },
-{ 1112 , "ERROR_NO_MEDIA_IN_DRIVE" },
-{ 1113 , "ERROR_NO_UNICODE_TRANSLATION" },
-{ 1114 , "ERROR_DLL_INIT_FAILED" },
-{ 1115 , "ERROR_SHUTDOWN_IN_PROGRESS" },
-{ 1116 , "ERROR_NO_SHUTDOWN_IN_PROGRESS" },
-{ 1117 , "ERROR_IO_DEVICE" },
-{ 1118 , "ERROR_SERIAL_NO_DEVICE" },
-{ 1119 , "ERROR_IRQ_BUSY" },
-{ 1120 , "ERROR_MORE_WRITES" },
-{ 1121 , "ERROR_COUNTER_TIMEOUT" },
-{ 1122 , "ERROR_FLOPPY_ID_MARK_NOT_FOUND" },
-{ 1123 , "ERROR_FLOPPY_WRONG_CYLINDER" },
-{ 1124 , "ERROR_FLOPPY_UNKNOWN_ERROR" },
-{ 1125 , "ERROR_FLOPPY_BAD_REGISTERS" },
-{ 1126 , "ERROR_DISK_RECALIBRATE_FAILED" },
-{ 1127 , "ERROR_DISK_OPERATION_FAILED" },
-{ 1128 , "ERROR_DISK_RESET_FAILED" },
-{ 1129 , "ERROR_EOM_OVERFLOW" },
-{ 1130 , "ERROR_NOT_ENOUGH_SERVER_MEMORY" },
-{ 1131 , "ERROR_POSSIBLE_DEADLOCK" },
-{ 1132 , "ERROR_MAPPED_ALIGNMENT" },
-{ 1140 , "ERROR_SET_POWER_STATE_VETOED" },
-{ 1141 , "ERROR_SET_POWER_STATE_FAILED" },
-{ 1150 , "ERROR_OLD_WIN_VERSION" },
-{ 1151 , "ERROR_APP_WRONG_OS" },
-{ 1152 , "ERROR_SINGLE_INSTANCE_APP" },
-{ 1153 , "ERROR_RMODE_APP" },
-{ 1154 , "ERROR_INVALID_DLL" },
-{ 1155 , "ERROR_NO_ASSOCIATION" },
-{ 1156 , "ERROR_DDE_FAIL" },
-{ 1157 , "ERROR_DLL_NOT_FOUND" },
-{ 2202 , "ERROR_BAD_USERNAME" },
-{ 2250 , "ERROR_NOT_CONNECTED" },
-{ 2401 , "ERROR_OPEN_FILES" },
-{ 2402 , "ERROR_ACTIVE_CONNECTIONS" },
-{ 2404 , "ERROR_DEVICE_IN_USE" },
-{ 1200 , "ERROR_BAD_DEVICE" },
-{ 1201 , "ERROR_CONNECTION_UNAVAIL" },
-{ 1202 , "ERROR_DEVICE_ALREADY_REMEMBERED" },
-{ 1203 , "ERROR_NO_NET_OR_BAD_PATH" },
-{ 1204 , "ERROR_BAD_PROVIDER" },
-{ 1205 , "ERROR_CANNOT_OPEN_PROFILE" },
-{ 1206 , "ERROR_BAD_PROFILE" },
-{ 1207 , "ERROR_NOT_CONTAINER" },
-{ 1208 , "ERROR_EXTENDED_ERROR" },
-{ 1209 , "ERROR_INVALID_GROUPNAME" },
-{ 1210 , "ERROR_INVALID_COMPUTERNAME" },
-{ 1211 , "ERROR_INVALID_EVENTNAME" },
-{ 1212 , "ERROR_INVALID_DOMAINNAME" },
-{ 1213 , "ERROR_INVALID_SERVICENAME" },
-{ 1214 , "ERROR_INVALID_NETNAME" },
-{ 1215 , "ERROR_INVALID_SHARENAME" },
-{ 1216 , "ERROR_INVALID_PASSWORDNAME" },
-{ 1217 , "ERROR_INVALID_MESSAGENAME" },
-{ 1218 , "ERROR_INVALID_MESSAGEDEST" },
-{ 1219 , "ERROR_SESSION_CREDENTIAL_CONFLICT" },
-{ 1220 , "ERROR_REMOTE_SESSION_LIMIT_EXCEEDED" },
-{ 1221 , "ERROR_DUP_DOMAINNAME" },
-{ 1222 , "ERROR_NO_NETWORK" },
-{ 1223 , "ERROR_CANCELLED" },
-{ 1224 , "ERROR_USER_MAPPED_FILE" },
-{ 1225 , "ERROR_CONNECTION_REFUSED" },
-{ 1226 , "ERROR_GRACEFUL_DISCONNECT" },
-{ 1227 , "ERROR_ADDRESS_ALREADY_ASSOCIATED" },
-{ 1228 , "ERROR_ADDRESS_NOT_ASSOCIATED" },
-{ 1229 , "ERROR_CONNECTION_INVALID" },
-{ 1230 , "ERROR_CONNECTION_ACTIVE" },
-{ 1231 , "ERROR_NETWORK_UNREACHABLE" },
-{ 1232 , "ERROR_HOST_UNREACHABLE" },
-{ 1233 , "ERROR_PROTOCOL_UNREACHABLE" },
-{ 1234 , "ERROR_PORT_UNREACHABLE" },
-{ 1235 , "ERROR_REQUEST_ABORTED" },
-{ 1236 , "ERROR_CONNECTION_ABORTED" },
-{ 1237 , "ERROR_RETRY" },
-{ 1238 , "ERROR_CONNECTION_COUNT_LIMIT" },
-{ 1239 , "ERROR_LOGIN_TIME_RESTRICTION" },
-{ 1240 , "ERROR_LOGIN_WKSTA_RESTRICTION" },
-{ 1241 , "ERROR_INCORRECT_ADDRESS" },
-{ 1242 , "ERROR_ALREADY_REGISTERED" },
-{ 1243 , "ERROR_SERVICE_NOT_FOUND" },
-{ 1244 , "ERROR_NOT_AUTHENTICATED" },
-{ 1245 , "ERROR_NOT_LOGGED_ON" },
-{ 1246 , "ERROR_CONTINUE" },
-{ 1247 , "ERROR_ALREADY_INITIALIZED" },
-{ 1248 , "ERROR_NO_MORE_DEVICES" },
-{ 1300 , "ERROR_NOT_ALL_ASSIGNED" },
-{ 1301 , "ERROR_SOME_NOT_MAPPED" },
-{ 1302 , "ERROR_NO_QUOTAS_FOR_ACCOUNT" },
-{ 1303 , "ERROR_LOCAL_USER_SESSION_KEY" },
-{ 1304 , "ERROR_NULL_LM_PASSWORD" },
-{ 1305 , "ERROR_UNKNOWN_REVISION" },
-{ 1306 , "ERROR_REVISION_MISMATCH" },
-{ 1307 , "ERROR_INVALID_OWNER" },
-{ 1308 , "ERROR_INVALID_PRIMARY_GROUP" },
-{ 1309 , "ERROR_NO_IMPERSONATION_TOKEN" },
-{ 1310 , "ERROR_CANT_DISABLE_MANDATORY" },
-{ 1311 , "ERROR_NO_LOGON_SERVERS" },
-{ 1312 , "ERROR_NO_SUCH_LOGON_SESSION" },
-{ 1313 , "ERROR_NO_SUCH_PRIVILEGE" },
-{ 1314 , "ERROR_PRIVILEGE_NOT_HELD" },
-{ 1315 , "ERROR_INVALID_ACCOUNT_NAME" },
-{ 1316 , "ERROR_USER_EXISTS" },
-{ 1317 , "ERROR_NO_SUCH_USER" },
-{ 1318 , "ERROR_GROUP_EXISTS" },
-{ 1319 , "ERROR_NO_SUCH_GROUP" },
-{ 1320 , "ERROR_MEMBER_IN_GROUP" },
-{ 1321 , "ERROR_MEMBER_NOT_IN_GROUP" },
-{ 1322 , "ERROR_LAST_ADMIN" },
-{ 1323 , "ERROR_WRONG_PASSWORD" },
-{ 1324 , "ERROR_ILL_FORMED_PASSWORD" },
-{ 1325 , "ERROR_PASSWORD_RESTRICTION" },
-{ 1326 , "ERROR_LOGON_FAILURE" },
-{ 1327 , "ERROR_ACCOUNT_RESTRICTION" },
-{ 1328 , "ERROR_INVALID_LOGON_HOURS" },
-{ 1329 , "ERROR_INVALID_WORKSTATION" },
-{ 1330 , "ERROR_PASSWORD_EXPIRED" },
-{ 1331 , "ERROR_ACCOUNT_DISABLED" },
-{ 1332 , "ERROR_NONE_MAPPED" },
-{ 1333 , "ERROR_TOO_MANY_LUIDS_REQUESTED" },
-{ 1334 , "ERROR_LUIDS_EXHAUSTED" },
-{ 1335 , "ERROR_INVALID_SUB_AUTHORITY" },
-{ 1336 , "ERROR_INVALID_ACL" },
-{ 1337 , "ERROR_INVALID_SID" },
-{ 1338 , "ERROR_INVALID_SECURITY_DESCR" },
-{ 1340 , "ERROR_BAD_INHERITANCE_ACL" },
-{ 1341 , "ERROR_SERVER_DISABLED" },
-{ 1342 , "ERROR_SERVER_NOT_DISABLED" },
-{ 1343 , "ERROR_INVALID_ID_AUTHORITY" },
-{ 1344 , "ERROR_ALLOTTED_SPACE_EXCEEDED" },
-{ 1345 , "ERROR_INVALID_GROUP_ATTRIBUTES" },
-{ 1346 , "ERROR_BAD_IMPERSONATION_LEVEL" },
-{ 1347 , "ERROR_CANT_OPEN_ANONYMOUS" },
-{ 1348 , "ERROR_BAD_VALIDATION_CLASS" },
-{ 1349 , "ERROR_BAD_TOKEN_TYPE" },
-{ 1350 , "ERROR_NO_SECURITY_ON_OBJECT" },
-{ 1351 , "ERROR_CANT_ACCESS_DOMAIN_INFO" },
-{ 1352 , "ERROR_INVALID_SERVER_STATE" },
-{ 1353 , "ERROR_INVALID_DOMAIN_STATE" },
-{ 1354 , "ERROR_INVALID_DOMAIN_ROLE" },
-{ 1355 , "ERROR_NO_SUCH_DOMAIN" },
-{ 1356 , "ERROR_DOMAIN_EXISTS" },
-{ 1357 , "ERROR_DOMAIN_LIMIT_EXCEEDED" },
-{ 1358 , "ERROR_INTERNAL_DB_CORRUPTION" },
-{ 1359 , "ERROR_INTERNAL_ERROR" },
-{ 1360 , "ERROR_GENERIC_NOT_MAPPED" },
-{ 1361 , "ERROR_BAD_DESCRIPTOR_FORMAT" },
-{ 1362 , "ERROR_NOT_LOGON_PROCESS" },
-{ 1363 , "ERROR_LOGON_SESSION_EXISTS" },
-{ 1364 , "ERROR_NO_SUCH_PACKAGE" },
-{ 1365 , "ERROR_BAD_LOGON_SESSION_STATE" },
-{ 1366 , "ERROR_LOGON_SESSION_COLLISION" },
-{ 1367 , "ERROR_INVALID_LOGON_TYPE" },
-{ 1368 , "ERROR_CANNOT_IMPERSONATE" },
-{ 1369 , "ERROR_RXACT_INVALID_STATE" },
-{ 1370 , "ERROR_RXACT_COMMIT_FAILURE" },
-{ 1371 , "ERROR_SPECIAL_ACCOUNT" },
-{ 1372 , "ERROR_SPECIAL_GROUP" },
-{ 1373 , "ERROR_SPECIAL_USER" },
-{ 1374 , "ERROR_MEMBERS_PRIMARY_GROUP" },
-{ 1375 , "ERROR_TOKEN_ALREADY_IN_USE" },
-{ 1376 , "ERROR_NO_SUCH_ALIAS" },
-{ 1377 , "ERROR_MEMBER_NOT_IN_ALIAS" },
-{ 1378 , "ERROR_MEMBER_IN_ALIAS" },
-{ 1379 , "ERROR_ALIAS_EXISTS" },
-{ 1380 , "ERROR_LOGON_NOT_GRANTED" },
-{ 1381 , "ERROR_TOO_MANY_SECRETS" },
-{ 1382 , "ERROR_SECRET_TOO_LONG" },
-{ 1383 , "ERROR_INTERNAL_DB_ERROR" },
-{ 1384 , "ERROR_TOO_MANY_CONTEXT_IDS" },
-{ 1385 , "ERROR_LOGON_TYPE_NOT_GRANTED" },
-{ 1386 , "ERROR_NT_CROSS_ENCRYPTION_REQUIRED" },
-{ 1387 , "ERROR_NO_SUCH_MEMBER" },
-{ 1388 , "ERROR_INVALID_MEMBER" },
-{ 1389 , "ERROR_TOO_MANY_SIDS" },
-{ 1390 , "ERROR_LM_CROSS_ENCRYPTION_REQUIRED" },
-{ 1391 , "ERROR_NO_INHERITANCE" },
-{ 1392 , "ERROR_FILE_CORRUPT" },
-{ 1393 , "ERROR_DISK_CORRUPT" },
-{ 1394 , "ERROR_NO_USER_SESSION_KEY" },
-{ 1395 , "ERROR_LICENSE_QUOTA_EXCEEDED" },
-{ 1400 , "ERROR_INVALID_WINDOW_HANDLE" },
-{ 1401 , "ERROR_INVALID_MENU_HANDLE" },
-{ 1402 , "ERROR_INVALID_CURSOR_HANDLE" },
-{ 1403 , "ERROR_INVALID_ACCEL_HANDLE" },
-{ 1404 , "ERROR_INVALID_HOOK_HANDLE" },
-{ 1405 , "ERROR_INVALID_DWP_HANDLE" },
-{ 1406 , "ERROR_TLW_WITH_WSCHILD" },
-{ 1407 , "ERROR_CANNOT_FIND_WND_CLASS" },
-{ 1408 , "ERROR_WINDOW_OF_OTHER_THREAD" },
-{ 1409 , "ERROR_HOTKEY_ALREADY_REGISTERED" },
-{ 1410 , "ERROR_CLASS_ALREADY_EXISTS" },
-{ 1411 , "ERROR_CLASS_DOES_NOT_EXIST" },
-{ 1412 , "ERROR_CLASS_HAS_WINDOWS" },
-{ 1413 , "ERROR_INVALID_INDEX" },
-{ 1414 , "ERROR_INVALID_ICON_HANDLE" },
-{ 1415 , "ERROR_PRIVATE_DIALOG_INDEX" },
-{ 1416 , "ERROR_LISTBOX_ID_NOT_FOUND" },
-{ 1417 , "ERROR_NO_WILDCARD_CHARACTERS" },
-{ 1418 , "ERROR_CLIPBOARD_NOT_OPEN" },
-{ 1419 , "ERROR_HOTKEY_NOT_REGISTERED" },
-{ 1420 , "ERROR_WINDOW_NOT_DIALOG" },
-{ 1421 , "ERROR_CONTROL_ID_NOT_FOUND" },
-{ 1422 , "ERROR_INVALID_COMBOBOX_MESSAGE" },
-{ 1423 , "ERROR_WINDOW_NOT_COMBOBOX" },
-{ 1424 , "ERROR_INVALID_EDIT_HEIGHT" },
-{ 1425 , "ERROR_DC_NOT_FOUND" },
-{ 1426 , "ERROR_INVALID_HOOK_FILTER" },
-{ 1427 , "ERROR_INVALID_FILTER_PROC" },
-{ 1428 , "ERROR_HOOK_NEEDS_HMOD" },
-{ 1429 , "ERROR_GLOBAL_ONLY_HOOK" },
-{ 1430 , "ERROR_JOURNAL_HOOK_SET" },
-{ 1431 , "ERROR_HOOK_NOT_INSTALLED" },
-{ 1432 , "ERROR_INVALID_LB_MESSAGE" },
-{ 1433 , "ERROR_SETCOUNT_ON_BAD_LB" },
-{ 1434 , "ERROR_LB_WITHOUT_TABSTOPS" },
-{ 1435 , "ERROR_DESTROY_OBJECT_OF_OTHER_THREAD" },
-{ 1436 , "ERROR_CHILD_WINDOW_MENU" },
-{ 1437 , "ERROR_NO_SYSTEM_MENU" },
-{ 1438 , "ERROR_INVALID_MSGBOX_STYLE" },
-{ 1439 , "ERROR_INVALID_SPI_VALUE" },
-{ 1440 , "ERROR_SCREEN_ALREADY_LOCKED" },
-{ 1441 , "ERROR_HWNDS_HAVE_DIFF_PARENT" },
-{ 1442 , "ERROR_NOT_CHILD_WINDOW" },
-{ 1443 , "ERROR_INVALID_GW_COMMAND" },
-{ 1444 , "ERROR_INVALID_THREAD_ID" },
-{ 1445 , "ERROR_NON_MDICHILD_WINDOW" },
-{ 1446 , "ERROR_POPUP_ALREADY_ACTIVE" },
-{ 1447 , "ERROR_NO_SCROLLBARS" },
-{ 1448 , "ERROR_INVALID_SCROLLBAR_RANGE" },
-{ 1449 , "ERROR_INVALID_SHOWWIN_COMMAND" },
-{ 1450 , "ERROR_NO_SYSTEM_RESOURCES" },
-{ 1451 , "ERROR_NONPAGED_SYSTEM_RESOURCES" },
-{ 1452 , "ERROR_PAGED_SYSTEM_RESOURCES" },
-{ 1453 , "ERROR_WORKING_SET_QUOTA" },
-{ 1454 , "ERROR_PAGEFILE_QUOTA" },
-{ 1455 , "ERROR_COMMITMENT_LIMIT" },
-{ 1456 , "ERROR_MENU_ITEM_NOT_FOUND" },
-{ 1500 , "ERROR_EVENTLOG_FILE_CORRUPT" },
-{ 1501 , "ERROR_EVENTLOG_CANT_START" },
-{ 1502 , "ERROR_LOG_FILE_FULL" },
-{ 1503 , "ERROR_EVENTLOG_FILE_CHANGED" },
-{ 1700 , "RPC_S_INVALID_STRING_BINDING" },
-{ 1701 , "RPC_S_WRONG_KIND_OF_BINDING" },
-{ 1702 , "RPC_S_INVALID_BINDING" },
-{ 1703 , "RPC_S_PROTSEQ_NOT_SUPPORTED" },
-{ 1704 , "RPC_S_INVALID_RPC_PROTSEQ" },
-{ 1705 , "RPC_S_INVALID_STRING_UUID" },
-{ 1706 , "RPC_S_INVALID_ENDPOINT_FORMAT" },
-{ 1707 , "RPC_S_INVALID_NET_ADDR" },
-{ 1708 , "RPC_S_NO_ENDPOINT_FOUND" },
-{ 1709 , "RPC_S_INVALID_TIMEOUT" },
-{ 1710 , "RPC_S_OBJECT_NOT_FOUND" },
-{ 1711 , "RPC_S_ALREADY_REGISTERED" },
-{ 1712 , "RPC_S_TYPE_ALREADY_REGISTERED" },
-{ 1713 , "RPC_S_ALREADY_LISTENING" },
-{ 1714 , "RPC_S_NO_PROTSEQS_REGISTERED" },
-{ 1715 , "RPC_S_NOT_LISTENING" },
-{ 1716 , "RPC_S_UNKNOWN_MGR_TYPE" },
-{ 1717 , "RPC_S_UNKNOWN_IF" },
-{ 1718 , "RPC_S_NO_BINDINGS" },
-{ 1719 , "RPC_S_NO_PROTSEQS" },
-{ 1720 , "RPC_S_CANT_CREATE_ENDPOINT" },
-{ 1721 , "RPC_S_OUT_OF_RESOURCES" },
-{ 1722 , "RPC_S_SERVER_UNAVAILABLE" },
-{ 1723 , "RPC_S_SERVER_TOO_BUSY" },
-{ 1724 , "RPC_S_INVALID_NETWORK_OPTIONS" },
-{ 1725 , "RPC_S_NO_CALL_ACTIVE" },
-{ 1726 , "RPC_S_CALL_FAILED" },
-{ 1727 , "RPC_S_CALL_FAILED_DNE" },
-{ 1728 , "RPC_S_PROTOCOL_ERROR" },
-{ 1730 , "RPC_S_UNSUPPORTED_TRANS_SYN" },
-{ 1732 , "RPC_S_UNSUPPORTED_TYPE" },
-{ 1733 , "RPC_S_INVALID_TAG" },
-{ 1734 , "RPC_S_INVALID_BOUND" },
-{ 1735 , "RPC_S_NO_ENTRY_NAME" },
-{ 1736 , "RPC_S_INVALID_NAME_SYNTAX" },
-{ 1737 , "RPC_S_UNSUPPORTED_NAME_SYNTAX" },
-{ 1739 , "RPC_S_UUID_NO_ADDRESS" },
-{ 1740 , "RPC_S_DUPLICATE_ENDPOINT" },
-{ 1741 , "RPC_S_UNKNOWN_AUTHN_TYPE" },
-{ 1742 , "RPC_S_MAX_CALLS_TOO_SMALL" },
-{ 1743 , "RPC_S_STRING_TOO_LONG" },
-{ 1744 , "RPC_S_PROTSEQ_NOT_FOUND" },
-{ 1745 , "RPC_S_PROCNUM_OUT_OF_RANGE" },
-{ 1746 , "RPC_S_BINDING_HAS_NO_AUTH" },
-{ 1747 , "RPC_S_UNKNOWN_AUTHN_SERVICE" },
-{ 1748 , "RPC_S_UNKNOWN_AUTHN_LEVEL" },
-{ 1749 , "RPC_S_INVALID_AUTH_IDENTITY" },
-{ 1750 , "RPC_S_UNKNOWN_AUTHZ_SERVICE" },
-{ 1751 , "EPT_S_INVALID_ENTRY" },
-{ 1752 , "EPT_S_CANT_PERFORM_OP" },
-{ 1753 , "EPT_S_NOT_REGISTERED" },
-{ 1754 , "RPC_S_NOTHING_TO_EXPORT" },
-{ 1755 , "RPC_S_INCOMPLETE_NAME" },
-{ 1756 , "RPC_S_INVALID_VERS_OPTION" },
-{ 1757 , "RPC_S_NO_MORE_MEMBERS" },
-{ 1758 , "RPC_S_NOT_ALL_OBJS_UNEXPORTED" },
-{ 1759 , "RPC_S_INTERFACE_NOT_FOUND" },
-{ 1760 , "RPC_S_ENTRY_ALREADY_EXISTS" },
-{ 1761 , "RPC_S_ENTRY_NOT_FOUND" },
-{ 1762 , "RPC_S_NAME_SERVICE_UNAVAILABLE" },
-{ 1763 , "RPC_S_INVALID_NAF_ID" },
-{ 1764 , "RPC_S_CANNOT_SUPPORT" },
-{ 1765 , "RPC_S_NO_CONTEXT_AVAILABLE" },
-{ 1766 , "RPC_S_INTERNAL_ERROR" },
-{ 1767 , "RPC_S_ZERO_DIVIDE" },
-{ 1768 , "RPC_S_ADDRESS_ERROR" },
-{ 1769 , "RPC_S_FP_DIV_ZERO" },
-{ 1770 , "RPC_S_FP_UNDERFLOW" },
-{ 1771 , "RPC_S_FP_OVERFLOW" },
-{ 1772 , "RPC_X_NO_MORE_ENTRIES" },
-{ 1773 , "RPC_X_SS_CHAR_TRANS_OPEN_FAIL" },
-{ 1774 , "RPC_X_SS_CHAR_TRANS_SHORT_FILE" },
-{ 1775 , "RPC_X_SS_IN_NULL_CONTEXT" },
-{ 1777 , "RPC_X_SS_CONTEXT_DAMAGED" },
-{ 1778 , "RPC_X_SS_HANDLES_MISMATCH" },
-{ 1779 , "RPC_X_SS_CANNOT_GET_CALL_HANDLE" },
-{ 1780 , "RPC_X_NULL_REF_POINTER" },
-{ 1781 , "RPC_X_ENUM_VALUE_OUT_OF_RANGE" },
-{ 1782 , "RPC_X_BYTE_COUNT_TOO_SMALL" },
-{ 1783 , "RPC_X_BAD_STUB_DATA" },
-{ 1784 , "ERROR_INVALID_USER_BUFFER" },
-{ 1785 , "ERROR_UNRECOGNIZED_MEDIA" },
-{ 1786 , "ERROR_NO_TRUST_LSA_SECRET" },
-{ 1787 , "ERROR_NO_TRUST_SAM_ACCOUNT" },
-{ 1788 , "ERROR_TRUSTED_DOMAIN_FAILURE" },
-{ 1789 , "ERROR_TRUSTED_RELATIONSHIP_FAILURE" },
-{ 1790 , "ERROR_TRUST_FAILURE" },
-{ 1791 , "RPC_S_CALL_IN_PROGRESS" },
-{ 1792 , "ERROR_NETLOGON_NOT_STARTED" },
-{ 1793 , "ERROR_ACCOUNT_EXPIRED" },
-{ 1794 , "ERROR_REDIRECTOR_HAS_OPEN_HANDLES" },
-{ 1795 , "ERROR_PRINTER_DRIVER_ALREADY_INSTALLED" },
-{ 1796 , "ERROR_UNKNOWN_PORT" },
-{ 1797 , "ERROR_UNKNOWN_PRINTER_DRIVER" },
-{ 1798 , "ERROR_UNKNOWN_PRINTPROCESSOR" },
-{ 1799 , "ERROR_INVALID_SEPARATOR_FILE" },
-{ 1800 , "ERROR_INVALID_PRIORITY" },
-{ 1801 , "ERROR_INVALID_PRINTER_NAME" },
-{ 1802 , "ERROR_PRINTER_ALREADY_EXISTS" },
-{ 1803 , "ERROR_INVALID_PRINTER_COMMAND" },
-{ 1804 , "ERROR_INVALID_DATATYPE" },
-{ 1805 , "ERROR_INVALID_ENVIRONMENT" },
-{ 1806 , "RPC_S_NO_MORE_BINDINGS" },
-{ 1807 , "ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT" },
-{ 1808 , "ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT" },
-{ 1809 , "ERROR_NOLOGON_SERVER_TRUST_ACCOUNT" },
-{ 1810 , "ERROR_DOMAIN_TRUST_INCONSISTENT" },
-{ 1811 , "ERROR_SERVER_HAS_OPEN_HANDLES" },
-{ 1812 , "ERROR_RESOURCE_DATA_NOT_FOUND" },
-{ 1813 , "ERROR_RESOURCE_TYPE_NOT_FOUND" },
-{ 1814 , "ERROR_RESOURCE_NAME_NOT_FOUND" },
-{ 1815 , "ERROR_RESOURCE_LANG_NOT_FOUND" },
-{ 1816 , "ERROR_NOT_ENOUGH_QUOTA" },
-{ 1817 , "RPC_S_NO_INTERFACES" },
-{ 1818 , "RPC_S_CALL_CANCELLED" },
-{ 1819 , "RPC_S_BINDING_INCOMPLETE" },
-{ 1820 , "RPC_S_COMM_FAILURE" },
-{ 1821 , "RPC_S_UNSUPPORTED_AUTHN_LEVEL" },
-{ 1822 , "RPC_S_NO_PRINC_NAME" },
-{ 1823 , "RPC_S_NOT_RPC_ERROR" },
-{ 1824 , "RPC_S_UUID_LOCAL_ONLY" },
-{ 1825 , "RPC_S_SEC_PKG_ERROR" },
-{ 1826 , "RPC_S_NOT_CANCELLED" },
-{ 1827 , "RPC_X_INVALID_ES_ACTION" },
-{ 1828 , "RPC_X_WRONG_ES_VERSION" },
-{ 1829 , "RPC_X_WRONG_STUB_VERSION" },
-{ 1898 , "RPC_S_GROUP_MEMBER_NOT_FOUND" },
-{ 1899 , "EPT_S_CANT_CREATE" },
-{ 1900 , "RPC_S_INVALID_OBJECT" },
-{ 1901 , "ERROR_INVALID_TIME" },
-{ 1902 , "ERROR_INVALID_FORM_NAME" },
-{ 1903 , "ERROR_INVALID_FORM_SIZE" },
-{ 1904 , "ERROR_ALREADY_WAITING" },
-{ 1905 , "ERROR_PRINTER_DELETED" },
-{ 1906 , "ERROR_INVALID_PRINTER_STATE" },
-{ 1907 , "ERROR_PASSWORD_MUST_CHANGE" },
-{ 1908 , "ERROR_DOMAIN_CONTROLLER_NOT_FOUND" },
-{ 1909 , "ERROR_ACCOUNT_LOCKED_OUT" },
-{ 6118 , "ERROR_NO_BROWSER_SERVERS_FOUND" },
-{ 2000 , "ERROR_INVALID_PIXEL_FORMAT" },
-{ 2001 , "ERROR_BAD_DRIVER" },
-{ 2002 , "ERROR_INVALID_WINDOW_STYLE" },
-{ 2003 , "ERROR_METAFILE_NOT_SUPPORTED" },
-{ 2004 , "ERROR_TRANSFORM_NOT_SUPPORTED" },
-{ 2005 , "ERROR_CLIPPING_NOT_SUPPORTED" },
-{ 3000 , "ERROR_UNKNOWN_PRINT_MONITOR" },
-{ 3001 , "ERROR_PRINTER_DRIVER_IN_USE" },
-{ 3002 , "ERROR_SPOOL_FILE_NOT_FOUND" },
-{ 3003 , "ERROR_SPL_NO_STARTDOC" },
-{ 3004 , "ERROR_SPL_NO_ADDJOB" },
-{ 3005 , "ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED" },
-{ 3006 , "ERROR_PRINT_MONITOR_ALREADY_INSTALLED" },
-{ 4000 , "ERROR_WINS_INTERNAL" },
-{ 4001 , "ERROR_CAN_NOT_DEL_LOCAL_WINS" },
-{ 4002 , "ERROR_STATIC_INIT" },
-{ 4003 , "ERROR_INC_BACKUP" },
-{ 4004 , "ERROR_FULL_BACKUP" },
-{ 4005 , "ERROR_REC_NON_EXISTENT" },
-{ 4006 , "ERROR_RPL_NOT_ALLOWED" },
-{ 10004 , "WSAEINTR" },
-{ 10009 , "WSAEBADF" },
-{ 10013 , "WSAEACCES" },
-{ 10014 , "WSAEFAULT" },
-{ 10022 , "WSAEINVAL" },
-{ 10024 , "WSAEMFILE" },
-{ 10035 , "WSAEWOULDBLOCK" },
-{ 10036 , "WSAEINPROGRESS" },
-{ 10037 , "WSAEALREADY" },
-{ 10038 , "WSAENOTSOCK" },
-{ 10039 , "WSAEDESTADDRREQ" },
-{ 10040 , "WSAEMSGSIZE" },
-{ 10041 , "WSAEPROTOTYPE" },
-{ 10042 , "WSAENOPROTOOPT" },
-{ 10043 , "WSAEPROTONOSUPPORT" },
-{ 10044 , "WSAESOCKTNOSUPPORT" },
-{ 10045 , "WSAEOPNOTSUPP" },
-{ 10046 , "WSAEPFNOSUPPORT" },
-{ 10047 , "WSAEAFNOSUPPORT" },
-{ 10048 , "WSAEADDRINUSE" },
-{ 10049 , "WSAEADDRNOTAVAIL" },
-{ 10050 , "WSAENETDOWN" },
-{ 10051 , "WSAENETUNREACH" },
-{ 10052 , "WSAENETRESET" },
-{ 10053 , "WSAECONNABORTED" },
-{ 10054 , "WSAECONNRESET" },
-{ 10055 , "WSAENOBUFS" },
-{ 10056 , "WSAEISCONN" },
-{ 10057 , "WSAENOTCONN" },
-{ 10058 , "WSAESHUTDOWN" },
-{ 10059 , "WSAETOOMANYREFS" },
-{ 10060 , "WSAETIMEDOUT" },
-{ 10061 , "WSAECONNREFUSED" },
-{ 10062 , "WSAELOOP" },
-{ 10063 , "WSAENAMETOOLONG" },
-{ 10064 , "WSAEHOSTDOWN" },
-{ 10065 , "WSAEHOSTUNREACH" },
-{ 10066 , "WSAENOTEMPTY" },
-{ 10067 , "WSAEPROCLIM" },
-{ 10068 , "WSAEUSERS" },
-{ 10069 , "WSAEDQUOT" },
-{ 10070 , "WSAESTALE" },
-{ 10071 , "WSAEREMOTE" },
-{ 10101 , "WSAEDISCON" },
-{ 10091 , "WSASYSNOTREADY" },
-{ 10092 , "WSAVERNOTSUPPORTED" },
-{ 10093 , "WSANOTINITIALISED" },
-{ 11001 , "WSAHOST_NOT_FOUND" },
-{ 11002 , "WSATRY_AGAIN" },
-{ 11003 , "WSANO_RECOVERY" },
-{ 11004 , "WSANO_DATA" },
-{ 0, NULL }
-};
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/objndx.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/objndx.h
deleted file mode 100644
index 7fb14eecf06..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/objndx.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-#ifndef __objndx_h
-#define __objndx_h
-
-/* Define maximum length of object name strings */
-#define OBJNDXNAMLEN 16
-
-/* Functions in objndx.c */
-extern void * objndx_create(int size, void (*freefunc)(void *));
-extern char * objndx_register(void * objndx, void * objptr, char * namebuf);
-extern void * objndx_lookup(void * objndx, char * objname);
-extern void * objndx_remove(void * objndx, char * objname);
-extern void objndx_destroy(void * objndx);
-
-#endif /* __objndx_h */
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/pblock.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/pblock.h
deleted file mode 100644
index e2d3642a611..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/pblock.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * pblock.h: Header for Parameter Block handling functions
- *
- *
- * A parameter block is a set of name=value pairs which are generally used
- * as parameters, but can be anything. They are kept in a hash table for
- * reasonable speed, but if you are doing any intensive modification or
- * access of them you should probably make a local copy of each parameter
- * while working.
- *
- * When creating a pblock, you specify the hash table size for that pblock.
- * You should set this size larger if you know that many items will be in
- * that pblock, and smaller if only a few will be used or if speed is not
- * a concern.
- *
- * The hashing function is very simple right now, and only looks at the
- * first character of name.
- *
- * Rob McCool
- *
- */
-
-#ifndef PBLOCK_H
-#define PBLOCK_H
-
-/*
- * Requires that the macros MALLOC and STRDUP be set to "safe" versions that
- * will exit if no memory is available. If not under MCC httpd, define
- * them to be the real functions and play with fire, or make your own
- * function.
- */
-
-#include "../netsite.h"
-
-#include <ctype.h> /* isspace */
-#include <stdio.h> /* sprintf */
-#include <string.h> /* strlen, strcmp */
-
-
-/* ------------------------------ Structures ------------------------------ */
-
-
-typedef struct {
- char *name,*value;
-} pb_param;
-
-struct pb_entry {
- pb_param *param;
- struct pb_entry *next;
-};
-
-typedef struct {
- int hsize;
- struct pb_entry **ht;
-} pblock;
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * param_create creates a parameter with the given name and value. If name
- * and value are non-NULL, they are copied and placed into the new pb_param
- * struct.
- */
-
-pb_param *param_create(char *name, char *value);
-
-/*
- * param_free frees a given parameter if it's non-NULL, and returns 1 if
- * p was non-NULL, and 0 if p was NULL.
- *
- * Useful for error checking pblock_remove.
- */
-
-int param_free(pb_param *pp);
-
-/*
- * pblock_create creates a new pblock with hash table size n.
- *
- * It returns the newly allocated pblock.
- */
-
-pblock *pblock_create(int n);
-
-/*
- * pblock_free frees the given pblock and any entries inside it.
- *
- * If you want to save anything in a pblock, remove its entities with
- * pblock_remove first and save the pointers you get.
- */
-
-void pblock_free(pblock *pb);
-
-/*
- * pblock_find finds the entry with the given name in pblock pb.
- *
- * If it is successful, it returns the param block. If not, it returns NULL.
- */
-
-#define pblock_find(name, pb) (_pblock_fr(name,pb,0))
-
-/*
- * pblock_findval finds the entry with the given name in pblock pb, and
- * returns its value, otherwise returns NULL.
- */
-
-char *pblock_findval(char *name, pblock *pb);
-
-/*
- * pblock_remove behaves exactly like pblock_find, but removes the given
- * entry from pb.
- */
-
-#define pblock_remove(name, pb) (_pblock_fr(name,pb,1))
-
-/*
- * pblock_nvinsert creates a new parameter with the given name and value
- * and inserts it into pblock pb. The name and value in the parameter are
- * also newly allocated. Returns the pb_param it allocated (in case you
- * need it).
- *
- * pblock_nninsert inserts a numerical value.
- */
-
-pb_param *pblock_nvinsert(char *name, char *value, pblock *pb);
-pb_param *pblock_nninsert(char *name, int value, pblock *pb);
-
-/*
- * pblock_pinsert inserts a pb_param into a pblock.
- */
-
-void pblock_pinsert(pb_param *pp, pblock *pb);
-
-/*
- * pblock_str2pblock scans the given string str for parameter pairs
- * name=value, or name="value". Any \ must be followed by a literal
- * character. If a string value is found, with no unescaped = signs, it
- * will be added with the name 1, 2, 3, etc. depending on whether it was
- * first, second, third, etc. in the stream (zero doesn't count).
- *
- * Returns the number of parameters added to the table, or -1 upon error.
- */
-
-int pblock_str2pblock(char *str, pblock *pb);
-
-/*
- * pblock_pblock2str places all of the parameters in the given pblock
- * into the given string (NULL if it needs creation). It will re-allocate
- * more space for the string. Each parameter is separated by a space and of
- * the form name="value"
- */
-
-char *pblock_pblock2str(pblock *pb, char *str);
-
-/*
- * pblock_copy copies the entries in the given source pblock to the
- * destination one. The entries are newly allocated so that the original
- * pblock may be freed or the new one changed without affecting the other.
- */
-
-void pblock_copy(pblock *src, pblock *dst);
-
-/*
- * pblock_pb2env copies the given pblock into the given environment, with
- * one new env entry for each name/value pair in the pblock.
- */
-
-char **pblock_pb2env(pblock *pb, char **env);
-
-
-/* --------------------------- Internal things ---------------------------- */
-
-
-pb_param *_pblock_fr(char *name, pblock *pb, int remove);
-
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h
deleted file mode 100644
index c6ea65b834b..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * sem.h: Attempt to provide multi-process semaphores across platforms
- *
- * Rob McCool
- */
-
-
-#ifndef SEM_H
-#define SEM_H
-
-#include "systems.h"
-
-
-/* All of the implementations currently use int as the semaphore type */
-#ifdef SEM_WIN32
-typedef HANDLE SEMAPHORE;
-#define SEM_ERROR NULL
-/* That oughta hold them (I hope) */
-#define SEM_MAXVALUE 32767
-
-#else /* ! SEM_WIN32 */
-typedef int SEMAPHORE;
-#define SEM_ERROR -1
-#endif /* SEM_WIN32 */
-
-/*
- * sem_init creates a semaphore using the given name and unique
- * identification number. filename should be a file accessible to the
- * process. Returns SEM_ERROR on error.
- */
-
-SEMAPHORE sem_init(char *name, int number);
-
-/*
- * sem_terminate de-allocates the given semaphore.
- */
-
-void sem_terminate(SEMAPHORE id);
-
-/*
- * sem_grab attempts to gain exclusive access to the given semaphore. If
- * it can't get it, the caller will block. Returns -1 on error.
- */
-
-int sem_grab(SEMAPHORE id);
-
-/*
- * sem_release releases this process's exclusive control over the given
- * semaphore. Returns -1 on error.
- */
-
-int sem_release(SEMAPHORE id);
-
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/session.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/session.h
deleted file mode 100644
index c404dfa5a8c..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/session.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * session.h: Deals with virtual sessions
- *
- * A session is the time between when a client connects and when it
- * disconnects. Several requests may be handled in one session.
- *
- * Rob McCool
- */
-
-
-#ifndef SESSION_H
-#define SESSION_H
-
-
-#include "../netsite.h" /* MALLOC etc */
-#include "net.h" /* dns-related stuff */
-#include "buffer.h" /* netbuf */
-
-
-/* ------------------------------ Structures ------------------------------ */
-
-
-
-#define SESSION_HASHSIZE 5
-
-
-typedef struct {
- /* Client-specific information */
- pblock *client;
-
- SYS_NETFD csd;
- netbuf *inbuf;
-
- struct in_addr iaddr;
-} Session;
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * session_create creates a new request structure for the client with the
- * given socket descriptor and sockaddr.
- */
-
-Session *session_create(SYS_NETFD csd, struct sockaddr_in *sac);
-
-/*
- * session_free frees the given session
- */
-
-void session_free(Session *sn);
-
-/*
- * session_dns returns the DNS hostname of the client of this session,
- * and inserts it into the client pblock. Returns NULL if unavailable.
- */
-
-#define session_dns(sn) session_dns_lookup(sn, 0)
-
-/*
- * session_maxdns looks up a hostname from an IP address, and then verifies
- * that the host is really who they claim to be.
- */
-
-#define session_maxdns(sn) session_dns_lookup(sn, 1)
-
-char *session_dns_lookup(Session *sn, int verify);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h
deleted file mode 100644
index 38b7e4982aa..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * shexp.h: Defines and prototypes for shell exp. match routines
- *
- *
- * This routine will match a string with a shell expression. The expressions
- * accepted are based loosely on the expressions accepted by zsh.
- *
- * o * matches anything
- * o ? matches one character
- * o \ will escape a special character
- * o $ matches the end of the string
- * o [abc] matches one occurence of a, b, or c. The only character that needs
- * to be escaped in this is ], all others are not special.
- * o [a-z] matches any character between a and z
- * o [^az] matches any character except a or z
- * o ~ followed by another shell expression will remove any pattern
- * matching the shell expression from the match list
- * o (foo|bar) will match either the substring foo, or the substring bar.
- * These can be shell expressions as well.
- *
- * The public interface to these routines is documented below.
- *
- * Rob McCool
- *
- */
-
-#ifndef SHEXP_H
-#define SHEXP_H
-
-/*
- * Requires that the macro MALLOC be set to a "safe" malloc that will
- * exit if no memory is available. If not under MCC httpd, define MALLOC
- * to be the real malloc and play with fire, or make your own function.
- */
-
-#include "../netsite.h"
-
-#include <ctype.h> /* isalnum */
-#include <string.h> /* strlen */
-
-
-
-/* --------------------------- Public routines ---------------------------- */
-
-
-/*
- * shexp_valid takes a shell expression exp as input. It returns:
- *
- * NON_SXP if exp is a standard string
- * INVALID_SXP if exp is a shell expression, but invalid
- * VALID_SXP if exp is a valid shell expression
- */
-
-#define NON_SXP -1
-#define INVALID_SXP -2
-#define VALID_SXP 1
-
-int shexp_valid(char *exp);
-
-/*
- * shexp_match
- *
- * Takes a prevalidated shell expression exp, and a string str.
- *
- * Returns 0 on match and 1 on non-match.
- */
-
-int shexp_match(char *str, char *exp);
-
-
-/*
- * shexp_cmp
- *
- * Same as above, but validates the exp first. 0 on match, 1 on non-match,
- * -1 on invalid exp. shexp_casecmp does the same thing but is case
- * insensitive.
- */
-
-int shexp_cmp(char *str, char *exp);
-int shexp_casecmp(char *str, char *exp);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shmem.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shmem.h
deleted file mode 100644
index ec536cf4d9c..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shmem.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * shmem.h: Portable abstraction for memory shared among a server's workers
- *
- * Rob McCool
- */
-
-
-#ifndef _SHMEM_H
-#define _SHMEM_H
-
-#include "netsite.h"
-#include "systems.h"
-
-
-/* --------------------------- Data structures ---------------------------- */
-
-
-#if defined (SHMEM_UNIX_MMAP) || defined (SHMEM_WIN32_MMAP)
-#include "file.h" /* SYS_FILE */
-
-typedef struct {
- void *data; /* the data */
-#ifdef SHMEM_WIN32_MMAP
- HANDLE fdmap;
-#endif /* SHMEM_WIN32_MMAP */
- int size; /* the maximum length of the data */
-
- char *name; /* internal use: filename to unlink if exposed */
- SYS_FILE fd; /* internal use: file descriptor for region */
-} shmem_s;
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * shmem_alloc allocates a region of shared memory of the given size, using
- * the given name to avoid conflicts between multiple regions within the
- * program. The region will not be automatically grown if its boundaries
- * are over-run, use shmem_realloc for that.
- *
- * If expose is non-zero and the underlying system supports it, the
- * file used to create the shared region will be visible to other processes
- * running on the system.
- *
- * name should be unique to the program which calls this routine, otherwise
- * conflicts will arise.
- *
- * Returns a new shared memory region, with the data element being a
- * pointer to the shared memory. This function must be called before any
- * daemon workers are spawned, in order for the handle to the shared region
- * to be inherited by the children.
- *
- * Because of the requirement that the region must be inherited by the
- * children, the region cannot be re-allocated with a larger size when
- * necessary.
- */
-shmem_s *shmem_alloc(char *name, int size, int expose);
-
-
-/*
- * shmem_free de-allocates the specified region of shared memory.
- */
-void shmem_free(shmem_s *region);
-
-#endif /* SHMEM_UNIX_MMAP || SHMEM_WIN32_MMAP */
-
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h
deleted file mode 100644
index b54f085e6a9..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * systems.h: Lists of defines for systems
- *
- * This sets what general flavor the system is (UNIX, etc.),
- * and defines what extra functions your particular system needs.
- */
-
-
-#ifndef SYSTEMS_H
-#define SYSTEMS_H
-
-#include <string.h>
-
-
-#define DAEMON_ANY
-#define DAEMON_LISTEN_SIZE 128
-#ifndef MCC_ADMSERV
-#define DAEMON_STATS
-#endif
-
-/* Linux is not currently supported */
-#ifdef linux
-
-#define FILE_UNIX
-#undef FILE_STDIO
-#undef DAEMON_UNIX_FORK
-#undef DAEMON_UNIX_POOL
-#define DAEMON_UNIX_MOBRULE
-#undef DAEMON_STATS
-#define BSD_FLOCK
-#define BSD_RLIMIT
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS (MAP_FILE | MAP_PRIVATE)
-#undef BSD_SIGNALS
-
-#undef NEED_CRYPT_PROTO
-#undef AUTH_DBM
-#define SEM_FLOCK
-
-
-#define ZERO(ptr,len) memset(ptr,0,len)
-
-#elif defined(BSDI)
-
-#define FILE_UNIX
-#define DAEMON_UNIX_MOBRULE
-#define BSD_FLOCK
-#define BSD_RLIMIT
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS (MAP_FILE | MAP_PRIVATE)
-#define BSD_SIGNALS
-#define BSD_TIME
-#define BSD_MAIL
-#undef NEED_CRYPT_PROTO
-#define AUTH_DBM
-#define SEM_FLOCK
-
-#define ZERO(ptr,len) memset(ptr,0,len)
-
-#elif defined(SOLARIS)
-
-#define FILE_UNIX
-#undef FILE_STDIO
-#define DAEMON_UNIX_MOBRULE
-#define DAEMON_NEEDS_SEMAPHORE
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS MAP_PRIVATE
-#undef BSD_SIGNALS
-#define BSD_RLIMIT
-#define NEED_CRYPT_H
-#define AUTH_DBM
-/* The Solaris routines return ENOSPC when too many semaphores are SEM_UNDO. */
-#define SEM_FLOCK
-#define DLL_CAPABLE
-#define DLL_DLOPEN
-
-#define ZERO(ptr,len) memset(ptr,0,len)
-
-#elif defined(SUNOS4)
-
-#define BSD_SIGNALS
-#define BSD_TIME
-#define BSD_MAIL
-#define BSD_FLOCK
-#define BSD_RLIMIT
-#define FILE_UNIX
-#undef FILE_STDIO
-#define DAEMON_UNIX_MOBRULE
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS MAP_PRIVATE
-#undef NEED_CRYPT_H
-#define NEED_CRYPT_PROTO
-#define AUTH_DBM
-#define SEM_FLOCK
-#define ZERO(ptr,len) memset(ptr,0,len)
-#define DLL_CAPABLE
-#define DLL_DLOPEN
-
-#elif defined(OSF1)
-
-#undef BSD_SIGNALS
-#define BSD_TIME
-#define BSD_FLOCK
-#define BSD_RLIMIT
-#define FILE_UNIX
-#undef FILE_STDIO
-#define DAEMON_UNIX_MOBRULE
-#define DAEMON_NEEDS_SEMAPHORE
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS MAP_PRIVATE
-#define AUTH_DBM
-#define SEM_FLOCK
-#define ZERO(ptr,len) memset(ptr,0,len)
-#define DLL_CAPABLE
-#define DLL_DLOPEN
-
-#elif defined(AIX)
-
-#define FILE_UNIX
-#undef FILE_STDIO
-#undef DAEMON_UNIX_FORK
-#undef DAEMON_UNIX_POOL
-#define DAEMON_UNIX_MOBRULE
-#define DAEMON_NEEDS_SEMAPHORE
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS MAP_PRIVATE
-#undef BSD_SIGNALS
-#define BSD_RLIMIT
-#undef NEED_CRYPT_H
-#define AUTH_DBM
-#define SEM_FLOCK
-#define ZERO(ptr,len) memset(ptr,0,len)
-#define DLL_CAPABLE
-#define DLL_DLOPEN
-
-#elif defined(HPUX)
-
-#define FILE_UNIX
-#undef FILE_STDIO
-#define DAEMON_UNIX_MOBRULE
-#define DAEMON_NEEDS_SEMAPHORE
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS MAP_PRIVATE
-#undef BSD_SIGNALS
-#undef BSD_RLIMIT
-#undef NEED_CRYPT_H
-#define AUTH_DBM
-#define SEM_FLOCK
-#define ZERO(ptr,len) memset(ptr,0,len)
-#define DLL_CAPABLE
-#define DLL_HPSHL
-
-#elif defined (IRIX)
-
-#define FILE_UNIX
-#undef FILE_STDIO
-#undef DAEMON_UNIX_FORK
-#undef DAEMON_UNIX_POOL
-#define DAEMON_UNIX_MOBRULE
-#define DLL_CAPABLE
-#define DLL_DLOPEN
-#define NET_SOCKETS
-#define FILE_UNIX_MMAP
-#define FILE_MMAP_FLAGS MAP_PRIVATE
-#undef BSD_SIGNALS
-#define BSD_RLIMIT
-#define NEED_CRYPT_H
-#define AUTH_DBM
-#define SEM_FLOCK
-#define ZERO(ptr,len) memset(ptr,0,len)
-
-#else /* Windows NT */
-
-#include <wtypes.h>
-#include <winbase.h>
-
-typedef void* PASSWD;
-
-#define FILE_WIN32
-#define NET_SOCKETS
-#define NET_WINSOCK
-#define DAEMON_WIN32
-#undef AUTH_DBM
-#define ZERO(ptr, len) ZeroMemory(ptr, len)
-#define SEM_WIN32
-#define DLL_CAPABLE
-#define DLL_WIN32
-#define NO_NODELOCK /* aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagh */
-
-/* The stat call under NT doesn't define these macros */
-#define S_ISDIR(mode) ((mode&S_IFMT) == S_IFDIR)
-#define S_ISREG(mode) ((mode&S_IFMT) == S_IFREG)
-
-#define strcasecmp util_strcasecmp
-#define strncasecmp util_strncasecmp
-int util_strcasecmp(const char *s1, const char *s2);
-int util_strncasecmp(const char *s1, const char *s2, int n);
-#endif /* Windows NT */
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systhr.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systhr.h
deleted file mode 100644
index 81e101076f9..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systhr.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * systhr.h: Abstracted threading mechanisms
- *
- * Rob McCool
- */
-
-#ifndef _SYSTHR_H
-#define _SYSTHR_H
-
-#include "netsite.h"
-#include "systems.h"
-
-#ifdef THREAD_ANY
-
-#ifdef USE_NSPR
-#include <nspr/prthread.h>
-#include <nspr/prglobal.h>
-
-typedef PRThread* SYS_THREAD;
-#endif
-
-#ifdef THREAD_WIN32
-#include <nspr/prthread.h>
-#include <nspr/prglobal.h>
-#include <process.h>
-typedef struct {
- HANDLE hand;
- DWORD id;
-} sys_thread_s;
-typedef sys_thread_s *SYS_THREAD;
-#endif
-
-/*
- * systhread_start creates a thread with the given priority, will allocate
- * a stack of stksz bytes, and calls fn with arg as its argument. stksz
- * of zero will allocate a default stack size.
- *
- * XXX Priorities are system dependent
- */
-
-SYS_THREAD systhread_start(int prio, int stksz, void (*fn)(void *), void *arg);
-
-/*
- * systhread_current returns a pointer to the current thread.
- */
-#ifdef USE_NSPR
-#define systhread_current() PR_CurrentThread()
-#elif defined(THREAD_WIN32)
-#define systhread_current() GetCurrentThreadId()
-#endif
-
-/*
- * systhread_attach makes an existing thread an NSPR thread. Currently this
- * is used only in NT.
- */
-
-SYS_THREAD systhread_attach();
-
-/*
- * systhread_terminate terminates the thread that is passed in.
- */
-void systhread_terminate(SYS_THREAD thr);
-
-
-/*
- * systhread_sleep puts the calling thread to sleep for the given number
- * of milliseconds.
- */
-void systhread_sleep(int milliseconds);
-
-/*
- * systhread_init initializes the threading system. name is a name for the
- * program for debugging.
- */
-void systhread_init(char *name);
-
-/*
- * systhread_timerset starts or re-sets the interrupt timer for a thread
- * system. This should be considered a suggestion as most systems don't allow
- * the timer interval to be changed.
- */
-#ifdef THREAD_NSPR_USER
-#define systhread_timerset(usec) PR_StartEvents(usec)
-
-#elif defined(USE_NSPR)
-#define systhread_timerset(usec) (void)(usec)
-
-#elif defined(THREAD_WIN32)
-#define systhread_timerset(usec) (void)(usec)
-#endif
-
-
-/*
- * newkey allocates a new integer id for thread-private data. Use this
- * key to identify a variable which you want to appear differently
- * between threads, and then use setdata to associate a value with this
- * key for each thread.
- */
-int systhread_newkey(void);
-
-/*
- * Get data that has been previously associated with key in this thread.
- * Returns NULL if setkey has not been called with this key by this
- * thread previously, or the data that was previously used with setkey
- * by this thread with this key.
- */
-void *systhread_getdata(int key);
-
-/*
- * Associate data with the given key number in this thread.
- */
-void systhread_setdata(int key, void *data);
-
-#endif
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/util.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/util.h
deleted file mode 100644
index cf2f1c0764d..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/util.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * util.h: A hodge podge of utility functions and standard functions which
- * are unavailable on certain systems
- *
- * Rob McCool
- */
-
-
-#ifndef HTTPD_UTIL_H
-#define HTTPD_UTIL_H
-
-#include "buffer.h" /* filebuf for getline */
-
-#include <time.h> /* struct tm */
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * getline scans in buf until it finds a LF or CRLF, storing the string in
- * l. It will terminate the string and return:
- *
- * 0 when done, with the scanned line (minus CR or LF) in l
- * 1 upon EOF, with the scanned line (minus CR or LF) in l
- * -1 on error with the error description in l (uses lineno for information)
- */
-
-int util_getline(filebuf *buf, int lineno, int maxlen, char *l);
-
-
-/*
- * can_exec returns 1 if you can execute the file described by finfo, and
- * 0 if you can't.
- */
-
-#ifdef XP_UNIX
-#include <sys/stat.h>
-#include <sys/types.h>
-
-int util_can_exec(struct stat *finfo, uid_t uid, gid_t gid);
-
-#endif /* XP_UNIX */
-/*
- * env_create creates a new environment with the given env, with n new
- * entries, and places the current position that you should add your
- * entries with at pos.
- *
- * If env is NULL, it will allocate a new one. If not, it will reallocate
- * that one.
- */
-
-char **util_env_create(char **env, int n, int *pos);
-
-/*
- * util_env_str allocates a string from the given name and value and
- * returns it. It does not check for things like = signs in name.
- */
-
-char *util_env_str(char *name, char *value);
-
-/*
- * env_replace replaces the occurrence of the given variable with the
- * value you give.
- */
-
-void util_env_replace(char **env, char *name, char *value);
-
-/*
- * util_env_free frees an environment.
- */
-
-void util_env_free(char **env);
-
-/*
- * util_env_find looks through env for the named string. Returns the
- * corresponding value if the named string is found, or NULL if not.
- */
-char *util_env_find(char **env, char *name);
-
-
-/*
- * hostname gets the local hostname. Returns NULL if it can't find a FQDN.
- * You are free to realloc or free this string.
- */
-
-char *util_hostname(void);
-
-
-/*
- * chdir2path changes the current directory to the one that the file
- * path is in. path should point to a file. Caveat: path must be a writable
- * string. It won't get modified permanently.
- */
-
-int util_chdir2path(char *path);
-
-/*
- * is_mozilla checks if the given user-agent is mozilla, of at least
- * the given major and minor revisions. These are strings to avoid
- * ambiguities like 1.56 > 1.5
- */
-
-int util_is_mozilla(char *ua, char *major, char *minor);
-
-/*
- * is_url will return 1 if the given string seems to be a URL, or will
- * return 0 otherwise.
- *
- * Because of stupid news URLs, this will return 1 if the string has
- * all alphabetic characters up to the first colon and will not check for
- * the double slash.
- */
-
-int util_is_url(char *url);
-
-/*
- * util_later_than checks the date in the string ims, and if that date is
- * later than or equal to the one in the tm struct lms, then it returns 1.
- *
- * Handles RFC 822, 850, and ctime formats.
- */
-
-int util_later_than(struct tm *lms, char *ims);
-
-
-/*
- * util_uri_is_evil returns 1 if a URL has ../ or // in it.
- */
-int util_uri_is_evil(char *t);
-
-/*
- * util_uri_parse gets rid of /../, /./, and //.
- *
- * Assumes that either the string starts with a /, or the string will
- * not .. right off of its beginning. As such, ../foo.gif will
- * not be changed, although /../foo.gif will become /foo.gif.
- */
-
-void util_uri_parse(char *uri);
-
-/*
- * util_uri_unescape unescapes the given URI in place (% conversions only).
- */
-
-void util_uri_unescape(char *s);
-
-/*
- * util_uri_escape escapes any nasty chars in s and copies the string into d.
- * If d is NULL, it will allocate and return a properly sized string.
- * Warning: does not check bounds on a given d.
- *
- * util_url_escape does the same thing but does it for a url, i.e. ?:+ is
- * not escaped.
- */
-
-char *util_uri_escape(char *d, char *s);
-char *util_url_escape(char *d, char *s);
-
-/*
- * util_sh_escape places a \ in front of any shell-special characters.
- * Returns a newly-allocated copy of the string.
- */
-
-char *util_sh_escape(char *s);
-
-/*
- * util_itoa converts the given integer to a string into a.
- */
-
-int util_itoa(int i, char *a);
-
-/*
- * util_vsprintf and util_sprintf are simplified clones of the System V
- * vsprintf and sprintf routines.
- *
- * Returns the number of characters printed. Only handles %d and %s,
- * does not handle any width or precision.
- */
-
-#include <stdarg.h>
-
-int util_vsprintf(char *s, register char *fmt, va_list args);
-int util_sprintf(char *s, char *fmt, ...);
-
-/* These routines perform bounds checks. */
-int util_vsnprintf(char *s, int n, register char *fmt, va_list args);
-int util_snprintf(char *s, int n, char *fmt, ...);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/conf.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/conf.h
deleted file mode 100644
index ec632f2d84b..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/conf.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * conf.h: Deals with the server configuration file.
- *
- * Object configuration is an entirely different matter. This deals with
- * things like what port the server runs on, how many children it spawns,
- * and other server-related issues. Information related configuration is
- * handled by the object conf.
- *
- * Rob McCool
- */
-
-
-#ifndef CONF_H
-#define CONF_H
-
-#ifdef XP_WIN32
-#include <nt/ntconf.h>
-#else
-
-#include "netsite.h"
-#include "frame/objset.h"
-#include "base/daemon.h" /* daemon struct */
-
-#include <pwd.h> /* struct passwd */
-
-/* ------------------------------ Constants ------------------------------- */
-
-
-/* The longest line in the configuration file */
-#define CONF_MAXLEN 16384
-
-#define LF 10
-#define CR 13
-
-
-#if defined(DAEMON_ANY)
-#ifdef MCC_PROXY
-#define DEFAULT_PORT 8080
-#else
-#define DEFAULT_PORT 80
-#endif
-#endif
-
-#if defined(DAEMON_UNIX_POOL) || defined(DAEMON_UNIX_MOBRULE)
-#define DEFAULT_POOL_MAX 50
-#endif
-
-
-
-/* ------------------------------- Globals -------------------------------- */
-
-
-#ifndef CONF_C
-
-/*
- * These server parameters are made global because they really don't
- * belong anywhere else.
- */
-
-#if defined(DAEMON_ANY)
-
-#include <sys/types.h>
-
-/* What port we listen to */
-extern int port;
-
-/* What address to bind to */
-extern char *addr;
-
-/* User to run as */
-extern struct passwd *userpw;
-
-/* Directory to chroot to */
-extern char *chr;
-
-/* Where to log our pid to */
-extern char *pidfn;
-
-#if defined(DAEMON_UNIX_POOL) || defined(DAEMON_UNIX_MOBRULE)
-/* The maximum number of processes to keep in the pool */
-extern int pool_max;
-/* The minimum number of processes to keep in the pool */
-extern int pool_min;
-/* The maximum number of requests each process should handle. -1=default */
-extern int pool_life;
-#endif
-
-#ifdef NET_SSL
-extern char *secure_keyfn;
-extern char *secure_certfn;
-extern char *secure_dongle;
-extern int security_active;
-extern int secure_auth;
-extern int security_session_timeout;
-#endif
-
-#endif
-
-/* The server's hostname as should be reported in self-ref URLs */
-extern char *server_hostname;
-
-/* The main object from which all are derived */
-extern char *root_object;
-
-/* The object set the administrator has asked us to load */
-extern httpd_objset *std_os;
-
-/* The main error log, where all errors are logged */
-extern char *master_error_log;
-
-/* The e-mail address of someone to mail upon catastrophic error */
-extern char *admin_email;
-
-#endif
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * conf_init reads the given configuration file and sets any non-default
- * parameters to their given setting.
- */
-
-char *conf_init(char *cfn);
-
-/*
- * conf_terminate frees any data the conf routines may be holding.
- */
-
-void conf_terminate(void);
-
-
-/*
- * conf_vars2daemon transfers these globals to a daemon structure
- */
-void conf_vars2daemon(daemon_s *d);
-
-#endif
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/dnfilter.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/dnfilter.h
deleted file mode 100644
index 3904af7b37c..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/dnfilter.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-#ifndef __dnfilter_h
-#define __dnfilter_h
-
-/* Error codes */
-#define DNFERR_MAX (-1) /* maximum error code */
-#define DNFERR_MALLOC (-1) /* insufficient memory */
-#define DNFERR_FOPEN (-2) /* file open error */
-#define DNFERR_FILEIO (-3) /* file I/O error */
-#define DNFERR_DUPSPEC (-4) /* duplicate filter specification */
-#define DNFERR_INTERR (-5) /* internal error (bug) */
-#define DNFERR_SYNTAX (-6) /* syntax error in filter file */
-#define DNFERR_MIN (-6) /* minimum error code */
-
-/* This is used to return error information from dns_filter_setup() */
-typedef struct DNSFilterErr_s DNSFilterErr_t;
-struct DNSFilterErr_s {
- int errNo; /* DNFERR_xxxx error code */
- int lineno; /* file line number, if applicable */
- char * filename; /* filename, if applicable */
- char * errstr; /* error text, if any */
-};
-
-/* Data and functions in dnfilter.c */
-extern void * dnf_objndx;
-extern void dns_filter_destroy(void * dnfptr);
-extern int dns_filter_setup(pblock * client, DNSFilterErr_t * reterr);
-extern int dns_filter_check(pblock * client, char * cdns);
-
-#endif /* __dnfilter_h */
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/func.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/func.h
deleted file mode 100644
index 45383c76d23..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/func.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * func.h: Handles the function hash table
- *
- * httpd uses a table of internal functions hashed by a name string such that
- * users can reference specific functions from the configuration files.
- *
- * Any function referenced by configuration files will be passed a
- * parameter, a Request structure. The functions do not return anything.
- *
- * Rob McCool
- */
-
-#ifndef FUNC_H
-#define FUNC_H
-
-
-#include "netsite.h"
-#include "base/pblock.h"
-#include "base/session.h" /* Session structure */
-#include "frame/req.h" /* Request structure */
-
-
-/* -------------------------- Structure and Type -------------------------- */
-
-
-/*
- * FuncPtr is a pointer to our kind of functions
- */
-
-typedef int Func(pblock *, Session *, Request *);
-typedef Func *FuncPtr;
-
-/*
- * FuncStruct is a structure used in the static declaration of the
- * functions. This static declaration is parsed into a hash table at
- * startup. You should initialize the next entry to NULL.
- */
-
-struct FuncStruct {
- char *name;
- FuncPtr func;
- struct FuncStruct *next;
-};
-
-
-/* --------------------------- Hash definitions --------------------------- */
-
-
-/*
- * This is a primitive hash function. Once more is known about the names of
- * the functions, this will be optimized.
- */
-
-#define NUM_HASH 20
-#define FUNC_HASH(s) (s[0] % NUM_HASH)
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * func_init reads the static FuncStruct arrays and creates the global
- * function table from them.
- *
- * func_init will only read from the static arrays defined in func.c.
- */
-
-void func_init(void);
-
-/*
- * func_find returns a pointer to the function named name, or NULL if none
- * exists.
- */
-
-FuncPtr func_find(char *name);
-
-/*
- * func_exec will try to execute the function whose name is the "fn" entry
- * in the given pblock. If name is not found, it will log a misconfig of
- * missing fn parameter. If it can't find it, it will log that. In these
- * cases it will return REQ_ABORTED. Otherwise, it will return what the
- * function being executed returns.
- */
-
-int func_exec(pblock *pb, Session *sn, Request *rq);
-
-/*
- * func_insert dynamically inserts a named function into the server's
- * table of functions. Returns the FuncStruct it keeps in internal
- * databases, because on server restart you are responsible for freeing
- * (or not) its contents.
- */
-
-struct FuncStruct *func_insert(char *name, FuncPtr fn);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/http.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/http.h
deleted file mode 100644
index bc23879ebe8..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/http.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * http.h: Deals with HTTP-related issues
- *
- * Rob McCool
- */
-
-
-#ifndef HTTP_H
-#define HTTP_H
-
-
-#include "netsite.h"
-#include "base/session.h"
-#include "base/pblock.h"
-
-#include "frame/req.h" /* REQ_MAX_LINE, Request structure */
-
-/* ------------------------------ Constants ------------------------------- */
-
-
-#define HTTP_DATE_LEN 128
-#define HTTP_DATE_FMT "%A, %d-%b-%y %T GMT"
-
-
-/* The maximum number of RFC-822 headers we'll allow */
-/* This would be smaller if a certain browser wasn't so damn stupid. */
-#define HTTP_MAX_HEADERS 200
-
-/* Whether or not we should read the headers for if-modified-since */
-#define HTTP_DO_IMS
-#define HTTP_ALWAYS_LOADHDRS
-
-/* HTTP status codes */
-
-#define PROTOCOL_OK 200
-#define PROTOCOL_NO_RESPONSE 204
-#define PROTOCOL_REDIRECT 302
-#define PROTOCOL_NOT_MODIFIED 304
-#define PROTOCOL_BAD_REQUEST 400
-#define PROTOCOL_UNAUTHORIZED 401
-#define PROTOCOL_FORBIDDEN 403
-#define PROTOCOL_NOT_FOUND 404
-#define PROTOCOL_PROXY_UNAUTHORIZED 407
-#define PROTOCOL_SERVER_ERROR 500
-#define PROTOCOL_NOT_IMPLEMENTED 501
-
-
-#ifdef NET_SSL
-#define HTTPS_PORT 443
-#define HTTPS_URL "https"
-#endif
-#define HTTP_PORT 80
-#define HTTP_URL "http"
-
-/* -------------------------- http_scan_headers --------------------------- */
-
-
-/*
- * parses the first line of an HTTP request
- */
-
-#define protocol_parse_request http_parse_request
-int http_parse_request(char *t, Request *rq, Session *sn);
-
-/*
- * Scans HTTP headers from the given netbuf, and places them in headers.
- * If netbuf is NULL, the session's inbuf is used.
- *
- * Folded lines are joined and the linefeed removed (but not the whitespace).
- * If there are any repeat headers they are joined and the two field bodies
- * separated by a comma and space.
- *
- * t should be a string of length REQ_MAX_LINE. This is a convenience to
- * req.c so that we don't use too much runtime stack.
- *
- * Session is an optional parameter. Use NULL if you wish. It's used for
- * error logs.
- */
-
-#define protocol_scan_headers http_scan_headers
-int http_scan_headers(Session *sn, netbuf *buf, char *t, pblock *headers);
-
-
-/*
- * Starts the HTTP response. If HTTP/0.9, does nothing. If 1.0, sends header.
- * If this returns REQ_NOACTION, the method was head and no body should be
- * sent. Otherwise, it will return REQ_PROCEED.
- */
-
-#define protocol_start_response http_start_response
-int http_start_response(Session *sn, Request *rq);
-
-
-/*
- * http_hdrs2env takes the entries from the given pblock and converts them
- * to an environment.
- *
- * Each name entry will be made uppercase, prefixed with HTTP_ and any
- * occurrence of - will be converted to _.
- */
-
-char **http_hdrs2env(pblock *pb);
-
-
-/*
- * http_status sets status to the code n, with reason string r. If r is
- * NULL, the server will attempt to find one for the given status code.
- * If it finds none, it will give "Because I felt like it."
- */
-
-#define protocol_status http_status
-void http_status(Session *sn, Request *rq, int n, char *r);
-
-/*
- * http_set_finfo sets content-length and last-modified
- */
-
-#define protocol_set_finfo http_set_finfo
-int http_set_finfo(Session *sn, Request *rq, struct stat *finfo);
-
-
-/*
- * Takes the given pblock and prints headers into the given buffer at
- * position pos. Returns the buffer, reallocated if needed. Modifies pos.
- */
-
-char *http_dump822(pblock *pb, char *t, int *pos, int tsz);
-
-/*
- * Finishes a request. For HTTP, this just closes the socket.
- */
-
-#define protocol_finish_request http_finish_request
-void http_finish_request(Session *sn, Request *rq);
-
-
-/*
- * http_handle_session processes each request generated by Session
- */
-
-#define protocol_handle_session http_handle_session
-void http_handle_session(Session *sn);
-
-/*
- * http_uri2url takes the give URI prefix and URI suffix and creates a
- * newly-allocated full URL from them of the form
- * http://(server):(port)(prefix)(suffix)
- *
- * If you want either prefix or suffix to be skipped, use "" instead of NULL.
- */
-
-#define protocol_uri2url http_uri2url
-char *http_uri2url(char *prefix, char *suffix);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/httpact.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/httpact.h
deleted file mode 100644
index efc6d1202e3..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/httpact.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * httpact.h: Defines the API characteristics for HTTP servers
- *
- * Rob McCool
- */
-
-
-#ifndef HTTPACT_H
-#define HTTPACT_H
-
-#include "frame/req.h"
-#include "frame/object.h"
-
-
-/* ------------------------------ Constants ------------------------------- */
-
-#ifdef MCC_BATMAN
-#define NUM_DIRECTIVES 5
-#else
-#ifdef MCC_PROXY
-#define NUM_DIRECTIVES 10
-#else
-#define NUM_DIRECTIVES 7
-#endif
-#endif
-
-
-/* -------------------------- Generic Prototypes -------------------------- */
-
-
-/*
- * directive_name2num will return the position of the abbreviated directive
- * dir in the directive table.
- *
- * If dir does not exist in the table, it will return -1.
- */
-
-int directive_name2num(char *dir);
-
-
-/*
- * directive_num2name returns a string describing directive number num.
- */
-const char *directive_num2name(int num);
-
-
-/*
- * servact_finderror looks through the request's object set to find a
- * suitable error function to execute. Returns REQ_PROCEED if a function
- * was found and executed successfully, REQ_NOACTION otherwise.
- */
-int servact_finderror(Session *sn, Request *rq);
-
-
-/*
- * Read in and handle one request from the given session
- */
-void servact_handle(Session *sn);
-
-
-/* ----------------------- HTTP specific prototypes ----------------------- */
-
-
-int servact_handle_processed(Session *sn, Request *rq);
-
-/*
- * Returns the translated path (filename) for the given uri, NULL otherwise.
- * If authentication is required for the given uri, nothing is returned even
- * if the current user has authenticated to that area.
- */
-char *servact_translate_uri(char *uri, Session *sn);
-
-
-
-#ifdef MCC_PROXY
-
-/* ----------------------- proxy specific prototypes ---------------------- */
-
-/*
- * Resolves the given hostname, first trying to find a resolver
- * function from obj.conf, and if that fails, just calls gethostbyname().
- *
- */
-struct hostent *servact_gethostbyname(char *host, Session *sn, Request *rq);
-
-
-/*
- * Establishes a connection to the specified host and port using
- * a Connect class function from obj.conf. Returns the sockect
- * descriptor that is connected (and which should be SSL_Import()'ed
- * by the caller).
- *
- * Returns -2 (REQ_NOACTION), if no such Connect class function exists.
- * The caller should use the native connect mechanism in that case.
- *
- * Returns -1 (REQ_ABORT) on failure to connect. The caller should not
- * attempt to use the native connect.
- *
- */
-int servact_connect(char *host, int port, Session *sn, Request *rq);
-
-
-#endif /* ! MCC_PROXY */
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/ipfilter.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/ipfilter.h
deleted file mode 100644
index a0aa92e3ac9..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/ipfilter.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-#ifndef __ipfilter_h
-#define __ipfilter_h
-
-/* Define error codes */
-#define IPFERR_MAX (-1) /* maximum error code value */
-#define IPFERR_MALLOC (-1) /* insufficient memory */
-#define IPFERR_FOPEN (-2) /* file open error */
-#define IPFERR_FILEIO (-3) /* file I/O error */
-#define IPFERR_DUPSPEC (-4) /* duplicate filter specification */
-#define IPFERR_INTERR (-5) /* internal error (bug) */
-#define IPFERR_SYNTAX (-6) /* syntax error in filter file */
-#define IPFERR_CNFLICT (-7) /* conflicting filter specification */
-#define IPFERR_MIN (-7) /* minimum error code value */
-
-/* Define a scalar IP address value */
-typedef unsigned long IPAddr_t;
-
-/* Define structure for returning error information */
-typedef struct IPFilterErr_s IPFilterErr_t;
-struct IPFilterErr_s {
- int errNo; /* IPFERR_xxxx error code */
- int lineno; /* file line number, if applicable */
- char * filename; /* filename, if applicable */
- char * errstr; /* error text, if any */
-};
-
-/* Data and functions in ipfilter.c */
-extern void * ipf_objndx;
-extern void ip_filter_destroy(void * ipfptr);
-extern int ip_filter_setup(pblock * client, IPFilterErr_t * reterr);
-extern int ip_filter_check(pblock * client, IPAddr_t cip);
-
-#endif /* __ipfilter_h */
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/log.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/log.h
deleted file mode 100644
index 2641e87246c..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/log.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * log.h: Records transactions, reports errors to administrators, etc.
- *
- * Rob McCool
- */
-
-
-#ifndef LOG_H
-#define LOG_H
-
-
-#include "netsite.h"
-#include "base/session.h" /* Session structure */
-#include "frame/req.h" /* Request struct */
-#include "base/ereport.h" /* Error reporting, degrees */
-
-
-#define ERROR_CUTOFF 128
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * log_error logs an error of the given degree from the function func
- * and formats the arguments with the printf() style fmt. Returns whether the
- * log was successful. Records the current date.
- *
- * sn and rq are optional parameters. If given, information about the client
- * will be reported.
- */
-
-int log_error(int degree, char *func, Session *sn, Request *rq,
- char *fmt, ...);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h
deleted file mode 100644
index d7d49816280..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * object.h: Handle httpd objects
- *
- * Manages information about a document from config. files. Called mainly
- * by objset.c.
- *
- * This module does not assume anything about the directives being parsed.
- * That is handled by objset.c.
- *
- * This module requires the pblock module from the base library.
- *
- * Rob McCool
- *
- */
-
-
-#ifndef OBJECT_H
-#define OBJECT_H
-
-
-#include "netsite.h"
-#include "base/pblock.h"
-#include "base/session.h"
-
-
-
-
-/* ------------------------------ Constants ------------------------------- */
-
-
-/* The maximum directive length unabbreviated, plus one space */
-#define MAX_DNAME_LEN 11
-#define NUM_DIRECTIVES 7
-
-
-/* ------------------------------ Structures ------------------------------ */
-
-
-
-/*
- * Hierarchy of httpd_object
- *
- * An object contains dtables.
- *
- * Each dtable is a table of directives that were entered of a certain type.
- * There is one dtable for each unique type of directive.
- *
- * Each dtable contains an array of directives, each of which is equivalent
- * to one directive that occurred in a config. file.
- *
- * It is up to the caller to determine how many dtables will be allocated
- * and to keep track of which of their directive types maps to which dtable
- * number.
- */
-
-
-/*
- * directive is a structure containing the protection and parameters to an
- * instance of a directive within an httpd_object.
- *
- * param is the parameters, client is the protection.
- */
-
-typedef struct {
- pblock *param;
- pblock *client;
-} directive;
-
-/*
- * dtable is a structure for creating tables of directives
- */
-
-typedef struct {
- int ni;
- directive *inst;
-} dtable;
-
-/*
- * The httpd_object structure.
- *
- * The name pblock array contains the names for this object, such as its
- * virtual location, its physical location, or its identifier.
- *
- * tmpl contains any templates allocated to this object.
- */
-
-typedef struct {
- pblock *name;
-
- int nd;
- dtable *dt;
-} httpd_object;
-
-
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * directive_name2num will return the position of the abbreviated directive
- * dir in the directive table.
- *
- * If dir does not exist in the table, it will return -1.
- */
-
-int directive_name2num(char *dir);
-
-
-/*
- * directive_num2name returns a string describing directive number num.
- */
-
-const char *directive_num2name(int num);
-
-
-/*
- * object_create will create a new object and return a pointer to it.
- * It will allocate space for nd directive types and set name accordingly.
- */
-
-httpd_object *object_create(int nd, pblock *name);
-
-/*
- * object_free will free an object and any data associated with it.
- */
-
-void object_free(httpd_object *obj);
-
-/*
- * object_add_directive will add a new directive to the dtable for
- * the directive class at position dc.
- */
-
-void object_add_directive(int dc, pblock *p, pblock *c, httpd_object *obj);
-
-
-/*
- * object_findnext finds the object configured to follow the given object,
- * and stores the variables in rq->vars. It returns REQ_PROCEED if more
- * objects should be processed, or REQ_NOACTION if it did not find any
- * further objects to process. If something bad happens, REQ_ABORTED is
- * returned.
- *
- * Handles all DIRECTIVE_CONSTRUCT type directives such as NameTrans and
- * AuthType.
- */
-
-
-/* --------- Prototype moved to req.h because of interdependency ---------- */
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/objset.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/objset.h
deleted file mode 100644
index f7e07ef243b..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/objset.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * objset.h: Handles object sets
- *
- * Each object is produced by reading a config file of some form. See the
- * server documentation for descriptions of the directives that are
- * recognized, what they do, and how they are parsed.
- *
- * This module requires the pblock and buffer modules from the base library.
- *
- * Rob McCool
- */
-
-
-#ifndef OBJSET_H
-#define OBJSET_H
-
-#ifdef XP_WIN32
-#include <nt/ntobjset.h>
-#else
-
-
-#include "netsite.h"
-#include "base/pblock.h"
-#include "base/buffer.h"
-#include "frame/object.h"
-
-
-
-/* ------------------------------ Constants ------------------------------- */
-
-
-/*
- * The default number of objects to leave room for in an object set,
- * and the number of new entries by which to increase the size when that
- * room is filled.
- */
-
-#define OBJSET_INCSIZE 8
-
-/*
- * When parsing config. files, httpd will put a limit on how long
- * the parameters to a directive can be (in characters).
- *
- * Currently set to 10 lines (80 chars/line).
- */
-
-#define MAX_DIRECTIVE_LEN 800
-
-/*
- * The size of the hash tables that store a directive's parameters
- */
-
-#define PARAMETER_HASH_SIZE 3
-
-
-/* ------------------------------ Structures ------------------------------ */
-
-
-/*
- * httpd_objset is a container for a bunch of objects. obj is a
- * NULL-terminated array of objects. pos points to the entry after the last
- * one in the array. You should not mess with pos, but can read it to find
- * the last entry.
- */
-
-typedef struct {
- int pos;
- httpd_object **obj;
-} httpd_objset;
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * objset_scan_buffer will scan through buffer, looking for object
- * configuration information, and adding them to the object set os if it
- * finds any. If os is NULL it will allocate a new object set.
- *
- * If any error occurs (syntax error, premature EOF) this function will
- * free os, print an error message into errstr, and return NULL.
- * This is because a config. file error is viewed as a catastrophic error
- * from which httpd should not try to recover. If httpd were to continue
- * after an error, it would not behave as the admin. expected and he/she
- * may not notice until it's too late.
- *
- * Upon EOF the file will not be closed.
- */
-
-httpd_objset *objset_scan_buffer(filebuf *buf, char *errstr, httpd_objset *os);
-
-/*
- * objset_create creates a new object set and returns a pointer to it.
- */
-
-httpd_objset *objset_create(void);
-
-/*
- * objset_free will free an object set and any associated objects.
- */
-
-void objset_free(httpd_objset *os);
-
-/*
- * objset_free_setonly frees only the object set.
- */
-void objset_free_setonly(httpd_objset *os);
-
-/*
- * objset_new_object will add a new object to objset with the specified
- * name. It returns a pointer to the new object (which may be anywhere in
- * the objset).
- */
-
-httpd_object *objset_new_object(pblock *name, httpd_objset *os);
-
-/*
- * objset_add_object will add the existing object to os.
- */
-
-void objset_add_object(httpd_object *obj, httpd_objset *os);
-
-/*
- * objset_findbyname will find the object in objset having the given name,
- * and return the object if found, and NULL otherwise.
- * ign is a set of objects to ignore.
- */
-
-httpd_object *objset_findbyname(char *name, httpd_objset *ign,
- httpd_objset *os);
-
-/*
- * objset_findbyppath will find the object in objset having the given
- * partial path entry. Returns object if found, NULL otherwise.
- * ign is a set of objects to ignore.
- */
-
-httpd_object *objset_findbyppath(char *ppath, httpd_objset *ign,
- httpd_objset *os);
-
-
-#endif
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/protocol.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/protocol.h
deleted file mode 100644
index a57d9fc7aa4..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/protocol.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * protocol.h: Switch which protocol we're speaking.
- *
- * Currently only HTTP, but expected to include MTP in the future.
- *
- * Rob McCool
- */
-
-
-#ifdef MCC_HTTPD
-#include "http.h"
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/req.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/req.h
deleted file mode 100644
index 46ff5e2d4fb..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/req.h
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * req.h: Request-specific data structures and functions
- *
- * Rob McCool
- */
-
-
-#ifndef REQ_H
-#define REQ_H
-
-
-#include "netsite.h"
-#include "base/pblock.h"
-#include "base/session.h"
-#include "frame/objset.h"
-
-#include <sys/stat.h>
-
-
-
-/* ------------------------------ Constants ------------------------------- */
-
-
-#define REQ_HASHSIZE 10
-#define REQ_MAX_LINE 4096
-
-
-/*
- * The REQ_ return codes. These codes are used to determine what the server
- * should do after a particular module completes its task.
- *
- * Func type functions return these as do many internal functions.
- */
-
-/* The function performed its task, proceed with the request */
-#define REQ_PROCEED 0
-/* The entire request should be aborted: An error occurred */
-#define REQ_ABORTED -1
-/* The function performed no task, but proceed anyway. */
-#define REQ_NOACTION -2
-/* Tear down the session and exit */
-#define REQ_EXIT -3
-
-
-
-/* ------------------------------ Structures ------------------------------ */
-
-
-typedef struct {
- /* Server working variables */
- pblock *vars;
-
- /* The method, URI, and protocol revision of this request */
- pblock *reqpb;
- /* Protocol specific headers */
- int loadhdrs;
- pblock *headers;
-
- /* Server's response headers */
- pblock *srvhdrs;
-
- /* The object set constructed to fulfill this request */
- httpd_objset *os;
- /* Array of objects that were created from .nsconfig files */
- httpd_objset *tmpos;
-
- /* The stat last returned by request_stat_path */
- char *statpath;
- char *staterr;
- struct stat *finfo;
-
-#ifdef MCC_PROXY
- /* SOCKS request data */
- void *socks_rq;
-#endif
-
-} Request;
-
-
-/* ------------------------------ Prototypes ------------------------------ */
-
-
-/*
- * request_create creates a new request structure.
- */
-
-Request *request_create(void);
-
-/*
- * request_free destroys a request structure.
- */
-
-void request_free(Request *req);
-
-
-/*
- * Restarts a request for a given URI internally. If rq is non-NULL, the
- * function will keep the old request's headers and protocol, but with a new
- * URI and method of GET. If the previous method was HEAD, this is preserved.
- * Any other method becomes GET. You may assume that if you give it a request
- * structure that it will use the same structure.
- *
- * Once you have this new Request, you must then do what you want with
- * it (e.g. send the object back, perform uri2path translation, etc.)
- */
-
-Request *request_restart_internal(char *uri, Request *rq);
-
-
-/*
- * request_translate_uri performs virtual to physical mapping on the given
- * uri and returns either a path string or NULL depending on whether it was
- * successful or not.
- */
-
-char *request_translate_uri(char *uri, Session *sn);
-
-
-/*
- * request_header finds the named header depending on the requesting
- * protocol. If possible, it will not load headers until the first is
- * requested. You have to watch out because this can return REQ_ABORTED.
- */
-
-int request_header(char *name, char **value, Session *sn, Request *rq);
-
-/*
- * request_loadheaders just makes sure the headers have been loaded.
- */
-
-int request_loadheaders(Session *sn, Request *rq);
-
-
-/*
- * request_stat_path tries to stat path. If path is NULL, it will look in
- * the vars pblock for "path". If the stat is successful, it returns the stat
- * structure. If not, returns NULL and leaves a message in rq->staterr. If a
- * previous call to this function was successful, and path is the same, the
- * function will simply return the previously found value.
- *
- * User functions should not free this structure.
- */
-
-struct stat *request_stat_path(char *path, Request *rq);
-
-
-/*
- * Parses the URI parameter in rq->vars and finds out what objects it
- * references (using NameTrans). Builds the request's object set.
- */
-
-int request_uri2path(Session *sn, Request *rq);
-
-/*
- * Performs any path checks needed for this request.
- */
-
-int request_pathchecks(Session *sn, Request *rq);
-
-/*
- * Does all the ObjectType directives for a request
- */
-
-int request_fileinfo(Session *sn, Request *rq);
-
-
-/*
- * request_handle_processed takes a Request structure with its reqpb
- * block filled in and handles the request.
- */
-
-int request_handle_processed(Session *sn, Request *rq);
-
-
-/*
- * Complete a request by finding the service function and using it. Returns
- * REQ_NOACTION if no matching function was found.
- */
-
-int request_service(Session *sn, Request *rq);
-
-
-/*
- * request_handle handles one request from the session's inbuf.
- */
-
-void request_handle(Session *sn);
-
-/*
- * Moved here due to problems with interdependency. See object.h for
- * description.
- */
-
-int object_findnext(Session *sn, Request *rq, httpd_object *obj);
-int object_pathcheck(Session *sn, Request *rq, httpd_object *obj);
-int object_findinfo(Session *sn, Request *rq, httpd_object *obj);
-int object_findservice(Session *sn, Request *rq, httpd_object *obj);
-int object_finderror(Session *sn, Request *rq, httpd_object *obj);
-int object_findlogs(Session *sn, Request *rq, httpd_object *obj);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/servact.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/servact.h
deleted file mode 100644
index 79c7e3f5347..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/servact.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * servact.h: Define the server's actions, depending on what type of
- * server it is.
- *
- * Rob McCool
- */
-
-
-#if defined(MCC_HTTPD) || defined(MCC_PROXY) || defined(MCC_NEWS)
-#include "httpact.h"
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/netsite.h b/apps/JAWS/clients/WebSTONE/src/nsapi-includes/netsite.h
deleted file mode 100644
index 61d51923500..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/netsite.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 1994, 1995. Netscape Communications Corporation. All
- * rights reserved.
- *
- * Use of this software is governed by the terms of the license agreement for
- * the Netscape Communications or Netscape Comemrce Server between the
- * parties.
- */
-
-
-/* ------------------------------------------------------------------------ */
-
-
-/*
- * Standard defs for NetSite servers.
- */
-
-
-#ifndef NETSITE_H
-#define NETSITE_H
-
-#ifdef MCC_PROXY
-#define MAGNUS_VERSION "1.1m"
-#define MAGNUS_VERSION_STRING "Netscape-Proxy/1.1m"
-
-#elif defined(MCC_ADMSERV)
-#define MAGNUS_VERSION "1.1"
-#define MAGNUS_VERSION_STRING "Netscape-Administrator/1.1"
-
-#elif defined(MCC_HTTPD)
-#define MAGNUS_VERSION "1.1"
-#ifdef NET_SSL
-#define MAGNUS_VERSION_STRING "Netscape-Commerce/1.12"
-#else
-#define MAGNUS_VERSION_STRING "Netscape-Communications/1.12"
-#endif
-
-#elif defined(MCC_NEWS)
-#define MAGNUS_VERSION_STRING "Netscape 1.1"
-#endif
-
-/* Used in some places as a length limit on error messages */
-#define MAGNUS_ERROR_LEN 8192
-
-/* Carraige return and line feed */
-#define CR 13
-#define LF 10
-
-/* -------------------------- Memory allocation --------------------------- */
-
-
-/* Later change these to have catastrophic error handling */
-
-#include <stdlib.h>
-
-#define MALLOC(sz) malloc(sz)
-#define FREE(ptr) free((void *)ptr)
-#define STRDUP(str) strdup(str)
-#define REALLOC(ptr,sz) realloc(ptr,sz)
-
-
-/* Not sure where to put this. */
-void magnus_atrestart(void (*fn)(void *), void *data);
-
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/nsapi-send.c b/apps/JAWS/clients/WebSTONE/src/nsapi-send.c
deleted file mode 100644
index 1ce191d8765..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-send.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Send random bits file
- $Header: /disk6/WebStone-2.0/src/RCS/nsapi-send.c,v 1.4 1996/04/24 23:54:19
-scha
-n Exp schan $
- * Once this service function is installed, any file with the extension
- * "dyn-send" will be serviced with this function. An optional query
- * string may be passed to alter the amount of data in the response.
- *
- * For example:
- * /file.dyn-send - returns a 10240 byte file
- * /file.dyn-send?size=20 - returns a 20 byte file
- * /file.dyn-send?size=1024 - returns a 1024 byte file
- * etc.
- *
- * To install the service routine, compile it as per the makefile
- * included with your Netscape server distribution (serverroot/nsapi/examples)
- * and then add the following lines to your netscape server configuration:
- *
- * in magnus.conf
- * Init fn=load-modules shlib=example.so funcs=nsapi-send
- *
- * in obj.conf
- * Service method=(GET|HEAD) fn=nsapi-send type=magnus-internal/dyn-send
- *
- * in mime.types
- * type=magnus-internal/dyn-send exts=dyn-send
- *
- * Mike Belshe
- * mbelshe@netscape.com
- * 11-5-95
- *
- */
-
-#ifndef WIN32
-#include <stdio.h>
-#include <stdlib.h>
-#include "base/pblock.h"
-#include "base/session.h"
-#include "frame/protocol.h"
-#include "base/util.h"
-#include "frame/http.h"
-#else
-#include <windows.h>
-#define FILE_STDIO 1
-#endif
-#include "frame/req.h"
-
-#define FILE_SIZE 10240
-#define HEADERS "HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n"
-
-#ifdef WIN32
-__declspec(dllexport)
-#endif
-
-int nsapi_send(pblock *pb, Session *sn, Request *rq)
-{
- char *query_string;
- char buffer[sizeof(HEADERS) + 204800 + 1];
- int filesize;
- unsigned int maxindex;
- unsigned int index;
-
- /* Get the query string, if any; check to see if an alternate
- * file size was specified.
- */
- if ( !(query_string = pblock_findval("query", rq->reqpb)) )
- filesize = FILE_SIZE;
- else {
- filesize = atoi(&(query_string[5]));
- }
-
- memcpy(&buffer, HEADERS, sizeof(HEADERS)-1);
-
- /* Generate the output */
- maxindex = sizeof(HEADERS) + filesize;
- for (index=sizeof(HEADERS); index < (maxindex); index++)
- /* generate random characters from A-Z */
-#ifdef IRIX
- buffer[index] = rand_r() % 26 + 63;
-#else
- buffer[index] = rand() %26 + 63;
-#endif
-
- /* Send the output */
- if (net_write(sn->csd, buffer, sizeof(HEADERS)-1+filesize, 0) == IO_ERROR)
- return REQ_EXIT;
-
- return REQ_PROCEED;
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/parse_file_list.c b/apps/JAWS/clients/WebSTONE/src/parse_file_list.c
deleted file mode 100644
index 73854d1a056..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/parse_file_list.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-#include <stdio.h>
-#include <errno.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifndef WIN32
-#include <netdb.h>
-#include <sys/param.h>
-#endif /* WIN32 */
-
-#include <sys/types.h>
-
-#ifndef WIN32
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#include <sys/errno.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <netinet/in.h>
-#else
-#include <windows.h>
-#include <process.h>
-#include <time.h>
-#include <winsock.h>
-#endif /* WIN32 */
-
-#include <ctype.h>
-
-#include "sysdep.h"
-#include "bench.h"
-
-
-/*
- * count_file_list()
- * given a filename, return a guess at the number of pages
- */
-int
-count_file_list(const char *url_list_file)
-{
- FILE *fp;
- long int num_of_pages;
- char a_line[BUFSIZ];
- char *textvalue;
- int returnval;
-
- fp = fopen(url_list_file, "r");
-
- if (fp == NULL)
- {
- D_PRINTF( "Error %d opening filelist %s: %s\n",
- errno, url_list_file, strerror(errno) );;
- return(returnerr("Error %d opening filelist %s: %s\n",
- errno, url_list_file, strerror(errno)));
- }
- else
- {
- num_of_pages = 0;
- D_PRINTF( "Opened file, about to count\n" );
- /*
- * parse through the file line-by-line
- * strip out comments, but don't check for URL consistency
- */
- while (fgets(a_line, BUFSIZ, fp) != NULL)
- {
- textvalue = a_line;
- /* check for comments */
- if (strchr(textvalue, '#') != NULL)
- {
- /* throw out anything after any '#' */
- D_PRINTF( "Stripping comment from line: %s\n", textvalue );
- returnval = strcspn(textvalue, "#");
- D_PRINTF( "Found first # at %d\n", returnval );
- if (returnval == 0)
- {
- textvalue = NULL;
- }
- }
- /* is there more? */
- if (textvalue != NULL)
- {
- num_of_pages++;
- D_PRINTF( "Found %ld pages\n", num_of_pages );
- }
- }
- return(num_of_pages);
- }
- fclose(fp);
-} /* end count_file_list() */
-
-/*
- * parse_file_list()
- * given a filename, a pointer to a page list, and pointers to integers
- * for the number of pages and the number of files, parse its contents.
- */
-void
-parse_file_list (const char *url_list_file, page_list_t *page_list,
- long int *num_of_pages, long int *num_of_files)
-{
- FILE *fp;
- int filenum;
- int returnval;
- int loadnum;
- char a_line[BUFSIZ];
- char tempbuf[BUFSIZ];
- char *textvalue;
- int numfiles = 1, numpages = 0;
- int maxpages = *num_of_pages;
- page_list_t *pp;
-
- extern int haveproxyserver;
-
- fp = fopen(url_list_file, "r");
-
- if (fp == NULL)
- {
- errexit("Error %d opening filelist: %s\n", errno, strerror(errno));
- }
- else
- {
- /*
- * GRAB A LINE. FORMAT IS: URL WEIGHTINGFACTOR
- * EXAMPLE: http://www/file.html 1
- */
- D_PRINTF( "File is open.\n" );
- while(fgets(a_line, BUFSIZ, fp) != NULL)
- {
- textvalue = a_line;
- /* check for comments */
- if (strchr(textvalue, '#') != NULL)
- {
- /* throw out anything after a '#' */
- D_PRINTF( "Stripping comment from line: %s\n", textvalue );
- returnval = strcspn(textvalue, "#");
- D_PRINTF( "Found first # at %d\n", returnval );
- if (returnval == 0)
- continue;
- }
-
- if (numpages >= *num_of_pages)
- errexit("Out of space in parse_file_list()\n");
-
- pp = &page_list[numpages];
-
- D_PRINTF( "Processing page %ld\n", numpages );
- loadnum = 0;
-
- if (textvalue != NULL) { /* is there more? */
- /* check for weighting factor */
- D_PRINTF( "Setting page values from: %s\n", textvalue );
- returnval = sscanf(textvalue, "%s%d", tempbuf, &loadnum);
- D_PRINTF( "Scan for weighting returns %d, %d\n",
- returnval, loadnum );
- if (returnval == EOF || loadnum <= 0)
- {
- pp->load_num = 1;
- }
- else
- {
- pp->load_num = loadnum;
- }
- D_PRINTF( "Setting load=%d for line: %s\n",
- pp->load_num, textvalue );
-
- /* placeholder for grouping multiple files onto one page */
- pp->num_of_files = 1;
- filenum = 0;
-
- textvalue = tempbuf;
- D_PRINTF( "Line is now: %s\n", textvalue );
-
- /*
- * if we've got a proxy server, we'll assume that the
- * remaining text is a valid URL, and stuff it into
- * page_list[numpages].filename[filenum]
- * Otherwise, we'll have to parse it out.
- */
-
- if (haveproxyserver)
- {
- pp->servername[filenum] = NULL;
- pp->port_number[filenum] = 0;
- strcpy(pp->filename[filenum], textvalue);
- }
- else /* no proxy server, so we have to parse it out... */
- {
- /* try http://server(:port)/file */
- D_PRINTF( "Trying http://server(:port)/filename\n" );
- returnval = sscanf(textvalue, "http://%[^/]%s",
- tempbuf,
- a_line);
- /* check server string for :port */
- if (returnval != 0 && returnval != EOF)
- {
- D_PRINTF( "Setting filename %s\n", a_line );
- strcpy(pp->filename[filenum],
- a_line);
-
- D_PRINTF( "Checking %s for :portnumber\n", tempbuf );
- returnval = sscanf(tempbuf, "%[^:]:%d",
- a_line,
- &pp->port_number[filenum]);
-
- if (returnval < 2)
- {
- pp->port_number[filenum] = 80;
- }
- if (returnval == EOF)
- {
- pp->servername[filenum] = NULL;
- }
- else
- {
- D_PRINTF( "Port number %d, setting server %s\n",
- pp->port_number[filenum],
- a_line );
-
- strcpy(pp->servername[filenum], a_line);
- }
-
- D_PRINTF( "Server %s, port number %d\n",
- pp->servername[filenum],
- pp->port_number[filenum] );
- }
- else /* no good - try straight filename */
- {
- pp->port_number[filenum] = 80;
- D_PRINTF( "Trying filename, returnval=%d\n",
- returnval );
- pp->servername[filenum] = NULL;
- D_PRINTF( "Server %s, port number %d\n",
- pp->servername[filenum],
- pp->port_number[filenum] );
- returnval = sscanf(textvalue, "%s", a_line);
- D_PRINTF( "Scan returned filename %s\n", a_line );
-
- strcpy(pp->filename[filenum], a_line);
- } /* end of parsing */
- } /* end if haveproxyserver */
-
- D_PRINTF( "Done parsing line\n" );
- D_PRINTF( "Got server %s, port %d, file %s, returnval %d\n",
- pp->servername[filenum],
- pp->port_number[filenum],
- pp->filename[filenum],
- returnval );
- } /* end if textvalue not NULL */
-
- numpages++;
- } /* end while not EOF */
- if (numpages < 1)
- {
- returnerr("No files are specified by filelist\n");
- }
- } /* end if file ok */
- fclose(fp);
- D_PRINTF( "Returning %ld pages and %ld files\n",
- numpages, numfiles );
-
- *num_of_pages = numpages;
- *num_of_files = numfiles;
-}
-/* end parse_file_list */
-
-long int
-load_percent(page_list_t *page_list, long int number_of_pages)
-{
- int i;
- long int index_number = 0;
-
- for (i = 0; i < number_of_pages; i++)
- {
- index_number += page_list[i].load_num;
- }
-
- D_PRINTF( "load_percent returning %d\n", (index_number) );
- return(index_number);
-}
-
diff --git a/apps/JAWS/clients/WebSTONE/src/parse_file_list.h b/apps/JAWS/clients/WebSTONE/src/parse_file_list.h
deleted file mode 100644
index 6733c0ec638..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/parse_file_list.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/**************************************************************************
- $Header$
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs where *
- * deveolped by SGI for public use. If anychanges are made to this code *
- * please try to get the changes back to the author. Feel free to make *
- * modfications and changes to the code and release it. *
- * *
- **************************************************************************/
-#ifndef __PARSE_FILE_LIST_H__
-#define __PARSE_FILE_LIST_H__
-
-extern int count_file_list(const char *);
-
-extern void parse_file_list (char *, page_list_t *,
- long int *, long int *);
-
-#endif /* !__PARSE_FILE_LIST_H__ */
diff --git a/apps/JAWS/clients/WebSTONE/src/rexec.c b/apps/JAWS/clients/WebSTONE/src/rexec.c
deleted file mode 100644
index d9233bbcb34..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/rexec.c
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
- * Copyright (c) 1994-1995 Ataman Software, Inc. 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.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Ataman Software, Inc.
- * 4. The name of Ataman Software, Inc. may not may be used to endorse or
- * promote products derived from this software without specific prior
- * written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY ATAMAN SOFTWARE, INC. ``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 ATAMAN SOFTWARE, INC. 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.
- */
-
-
-static char copyright[] =
- "Copyright (c) 1994-1995 Ataman Software, Inc. All rights reserved.";
-
-
-#pragma warning(disable: 4699)
-/* Includes for Win32 systems go here. */
-#define STRICT
-#pragma warning(disable: 4201)
-#include <windows.h>
-#pragma warning(default: 4201)
-#include <winsock.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <process.h>
-#include <signal.h>
-#include "sysdep.h"
-#include "bench.h"
-
-#define RETVAL DWORD
-#define IDENT HANDLE
-#define STDINPUT hStdIn
-#define STDOUTPUT hStdOut
-#define STDERROR hStdErr
-#define FILECOOKIE HANDLE
-
-static void PassOutputThread(SOCKET);
-static void PassErrorThread(SOCKET);
-
-HANDLE hStdIn, hStdOut, hStdErr;
-
-
-
-/*
-Think carefully before enabling the -p option. While it may be
-convenient to have this option, it is for many (if not most) sites a
-security hole. Remember that the '-p password' used on the command
-line is visible on most Unix systems to any user that is allow to run
-the 'ps' command (normally ALL users can run this command). While no
-utility that comes by default with Windows NT at this time shows the
-same information, it is unclear whether or not the information is
-avaiable to all users. Certainly privileged users would be be able to
-see this information on any system.
-
-If the security risk is acceptable at your site, you can enable the -p
-option by uncommenting the #define below.
-*/
-/* #define ALLOWDASH_P */
-
-static void MyOpenService(const char *remote_host);
-static BOOL Send(SOCKET, const char *, size_t);
-static BOOL SendZString(const char *);
-static BOOL GetErrString(char *, size_t);
-
-static IDENT PassInput(void);
-static IDENT PassOutput(void);
-static IDENT PassError(void);
-static BOOL Close(FILECOOKIE);
-static int Read(FILECOOKIE, char *, size_t);
-static BOOL Write(FILECOOKIE, const char *, size_t);
-static void Wait(IDENT, RETVAL *);
-
-static SOCKET sIO = INVALID_SOCKET;
-static SOCKET sErr = INVALID_SOCKET;
-
-IDENT idIn = 0;
-IDENT idOut, idErr;
-
-SOCKET rexec(const char **hostname, NETPORT port, char *username, char *password,
- char *command, SOCKET *sockerr)
-{
-
- MyOpenService(*hostname);
-
- SendZString(username);
- SendZString(password);
- SendZString(command);
-
- if (!GetErrString(command, sizeof command)) {
- errexit("Rexec: Remote aborted connection without initiating protocol: %s.\n",
- neterrstr());
- }
-
- if (*command != '\0') {
- char *p = command;
- if (*p == '\001') {
- p++;
- }
- errexit("Rexec: Remote aborted connection: %s\n", p);
- }
-
- hStdIn = GetStdHandle(STD_INPUT_HANDLE);
- hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
- hStdErr = GetStdHandle(STD_ERROR_HANDLE);
-
- *sockerr = sErr;
- return sIO;
-}
-
-
-static void MyOpenService(const char *remote_host)
-{
- struct sockaddr_in server_addr, my_err_addr, junk_addr;
- struct servent *sv;
- static char portbuf[30];
- SOCKET sTmp;
- int addr_len;
-
- if (remote_host[0] >= '0' && remote_host[0] <= '9') {
- unsigned long addr;
-
- addr = inet_addr(remote_host);
- if (addr == INADDR_NONE) {
- returnerr("Invalid IP address %s\n", remote_host);
- return;
- }
- server_addr.sin_addr.S_un.S_addr = addr;
- } else {
- struct hostent *hent;
-
- hent = gethostbyname(remote_host);
- if (hent == NULL)
- {
- D_PRINTF( "Can't get %s host entry\n", remote_host );
- D_PRINTF( "Gethostbyname failed: %d", WSAGetLastError() );
- errexit("Rexec: gethostbyname(%s) failed: %s\n",
- remote_host, neterrstr());
- }
- memcpy((char *)&server_addr.sin_addr, hent->h_addr, hent->h_length);
-}
-
-#ifdef OMIT
- hent = gethostbyname(remote_host);
- if(!hent) {
- errexit("Rexec: Lookup of server hostname failed: %s.\n",
- neterrstr());
- }
-#endif /* OMIT */
-
- sv=getservbyname("exec", "tcp");
- if (!sv) {
- errexit("Rexec: Lookup of port number for rexec service failed: %s.\n",
- neterrstr());
- }
-
- server_addr.sin_family = PF_INET;
- server_addr.sin_port = htons(sv->s_port);
-
- if((sIO=socket(PF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) {
- errexit("Rexec: I/O socket creation failed: %s.\n",
- neterrstr());
- }
-
- if(connect(sIO, (struct sockaddr *)&server_addr, sizeof server_addr) == SOCKET_ERROR) {
- errexit("Rexec: I/O socket connection failed: %s.\n",
- neterrstr());
- }
-
- memset(&my_err_addr, '\0', sizeof my_err_addr);
- my_err_addr.sin_addr.s_addr = htonl(INADDR_ANY);
- my_err_addr.sin_family = AF_INET;
- my_err_addr.sin_port = 0;
-
- if ((sTmp=socket(PF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) {
- errexit("Rexec: Error socket creation failed: error=%s.\n",
- neterrstr());
- }
-
- if (bind(sTmp, (struct sockaddr *)&my_err_addr, sizeof my_err_addr) == SOCKET_ERROR) {
- errexit("Rexec: Error socket bind failed: %s.\n",
- neterrstr());
- (void) closesocket(sTmp);
- }
-
- if (listen(sTmp, 1) == SOCKET_ERROR) {
- errexit("Rexec: Error socket listen failed: %s.\n",
- neterrstr());
- (void) closesocket(sTmp);
- }
-
- addr_len = sizeof my_err_addr;
- if (getsockname(sTmp, (struct sockaddr *)&my_err_addr, &addr_len) == SOCKET_ERROR) {
- errexit("Rexec: Error socket bind failed: %s.\n",
- neterrstr());
- (void) closesocket(sTmp);
- }
-
- sprintf(portbuf, "%hu", ntohs(my_err_addr.sin_port));
- SendZString(portbuf);
-
- addr_len = sizeof junk_addr;
- if ((sErr = accept(sTmp, (struct sockaddr *)&junk_addr, &addr_len))
- == INVALID_SOCKET) {
- errexit("Rexec: Error socket accept failed: %s.\n",
- neterrstr());
- (void) closesocket(sTmp);
- }
-
- (void) closesocket(sTmp);
-}
-
-
-
-static BOOL Send(SOCKET s, const char *buf, size_t nbuf)
-{
- int cnt;
- size_t sent = 0;
-
- while (sent < nbuf) {
- cnt = send(s, &buf[sent], nbuf-sent, 0);
- if (cnt == -1) {
- return FALSE;
- }
- sent += cnt;
- }
- return TRUE;
-}
-
-
-static BOOL SendZString(const char *str)
-{
- return Send(sIO, str, strlen(str)+1);
-}
-
-
-static BOOL GetErrString(char *str, size_t len)
-{
- size_t pos = 0;
-
- while (pos < len) {
- char ch;
- if (recv(sIO, &ch, 1, 0) != 1) {
- return FALSE;
- }
- str[pos++] = ch;
- if (ch == '\0') {
- return TRUE;
- }
- if (ch == '\n') {
- return TRUE;
- }
- }
- return FALSE;
-}
-
-
-static IDENT PassOutput()
-{
- IDENT id;
- id = (IDENT)_beginthread(PassOutputThread, 4096, (void *)sIO);
- if ((long)id == -1) {
- errexit("Rexec: Could not start output passing thread: error = %lu\n", GetLastError());
- }
- return id;
-}
-
-static void PassOutputThread(SOCKET sIO)
-{
- RETVAL retval = 0;
- int count;
- char buf[4096];
-
- while ((count=recv(sIO, buf, sizeof buf, 0)) > 0) {
- if (!Write(STDOUTPUT, buf, count)) {
- fprintf(stderr, "Error writing to standard output: error = %lu.\n", GetLastError());
- retval = 1;
- break;
- }
- }
-
- _endthread();
-}
-
-
-static IDENT PassError()
-{
- IDENT id;
- id = (IDENT)_beginthread(PassErrorThread, 4096, (void *)sErr);
- if ((long)id == -1) {
- errexit("Rexec: Could not start error passing thread: error = %lu\n", GetLastError());
- }
- return id;
-}
-
-static void PassErrorThread(SOCKET sErr)
-{
- RETVAL retval = 0;
- int count;
- char buf[4096];
-
- while ((count=recv(sErr, buf, sizeof buf, 0)) > 0) {
- if (!Write(STDERROR, buf, count)) {
- fprintf(stderr, "Error writing to standard error: error = %lu.\n", GetLastError());
- retval = 1;
- break;
- }
- }
- _endthread();
-}
-
-static BOOL Close(FILECOOKIE fc)
-{
- return CloseHandle(fc);
-}
-
-static int Read(FILECOOKIE fc, char *buf, size_t nbuf)
-{
- DWORD cbRead;
- if (!ReadFile(fc, buf, nbuf, &cbRead, NULL)) {
- return -1;
- }
- return (int)cbRead;
-}
-
-
-static BOOL Write(FILECOOKIE fc, const char *buf, size_t nbuf)
-{
- DWORD cbWritten;
-
- if (!WriteFile(fc, buf, nbuf, &cbWritten, NULL)) {
- return FALSE;
- }
- if (cbWritten != nbuf) {
- return FALSE;
- }
- return TRUE;
-}
-
-
-static void
-Wait(IDENT id, RETVAL *prv)
-{
- if (!WaitForSingleObject(id, INFINITE)) {
- *prv = 2;
- } else {
- if (!GetExitCodeThread(id, prv)) {
- *prv = 4;
- }
- }
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/statistics.c b/apps/JAWS/clients/WebSTONE/src/statistics.c
deleted file mode 100644
index c07d50059d7..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/statistics.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-#include <math.h>
-#include <stdlib.h>
-#include "sysdep.h"
-#include "bench.h"
-
-
-double
-mean(const double sum, const int n)
-{
- if (n)
- {
- return(sum / n);
- }
- else
- {
- return(0);
- }
-}
-
-
-double
-variance(const double sum, const double sumofsquares, const int n)
-{
- double meanofsum;
-
- meanofsum = mean(sum, n);
-
- return (mean(sumofsquares,n) - (meanofsum * meanofsum));
-}
-
-
-double
-stddev(const double sum, const double sumofsquares, const int n)
-{
- return(sqrt(fabs(variance(sum, sumofsquares, n))));
-}
diff --git a/apps/JAWS/clients/WebSTONE/src/statistics.h b/apps/JAWS/clients/WebSTONE/src/statistics.h
deleted file mode 100644
index c1693d8fc34..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/statistics.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- $Headers$
-*/
-#ifndef _STATISTICS_H_
-#define _STATISTICS_H_
-
-extern double mean(const double, const int);
-extern double variance(const double, const double, const int);
-extern double stddev(const double, const double, const int);
-
-#endif /* ! _STATISTICS_H_ */
diff --git a/apps/JAWS/clients/WebSTONE/src/sysdep.c b/apps/JAWS/clients/WebSTONE/src/sysdep.c
deleted file mode 100644
index 630b1fbe780..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/sysdep.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-#include "sysdep.h"
-/* strerror() */
-#ifndef HAVE_STRERROR
-/* strerror is not available on SunOS 4.1.3 and others */
-extern int sys_nerr;
-extern char *sys_errlist[];
-extern int errno;
-
-char *strerror(int errnum)
-{
-
- if (errnum<sys_nerr)
- {
- return(sys_errlist[errnum]);
- }
-
- return(NULL);
-}
-
-#endif /* strerror() */
-
-
-/* stub routines for NT */
-
-#ifdef WIN32
-#include <winsock.h>
-#include <process.h>
-
-int getpid(void) {
-
- return GetCurrentThreadId();
-}
-
-void sleep(int sec) {
-
- Sleep(sec*1000);
-}
-#endif /* WIN32 */
-
diff --git a/apps/JAWS/clients/WebSTONE/src/sysdep.h b/apps/JAWS/clients/WebSTONE/src/sysdep.h
deleted file mode 100644
index 03c6602789b..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/sysdep.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#ifndef __SYSDEP_H__
-#define __SYSDEP_H__
-/**************************************************************************
- * $Header$ *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-/* include config.h, output from autoconf */
-#ifdef HAVE_CONFIG_H
-#ifndef __CONFIG_H__
-#define __CONFIG_H__
-#include "config.h"
-#endif
-#endif
-
-#ifdef WIN32
-#include <windows.h>
-#include <winsock.h>
-#endif /* WIN32 */
-
-/* MAXHOSTNAMELEN is undefined on some systems */
-#ifndef MAXHOSTNAMELEN
-#define MAXHOSTNAMELEN 64
-#endif
-
-/* SunOS doesn't define NULL */
-#ifndef NULL
-#define NULL 0
-#endif
-
-/* encapsulation of minor UNIX/WIN NT differences */
-#ifdef WIN32
-#define NETREAD(sock, buf, len) recv(sock, buf, len, 0)
-#define NETWRITE(sock, buf, len) send(sock, buf, len, 0)
-#define NETCLOSE(sock) closesocket(sock)
-#define BADSOCKET(sock) ((sock) == INVALID_SOCKET)
-#define BADSOCKET_ERRNO(sock) BADSOCKET(sock)
-#define BADSOCKET_VALUE INVALID_SOCKET
-#define S_ADDR S_un.S_addr
-
-#ifdef USE_TIMEZONE
-#error NT gettimeofday() doesn't support USE_TIMEZONE (yet)
-#else
-#define GETTIMEOFDAY(timeval, tz) gettimeofday(timeval)
-#endif /* USE_TIMEZONE */
-
-typedef unsigned short NETPORT;
-#define SRANDOM srand
-#define RANDOM_R rand_r
-#define RANDOM rand
-#define THREAD __declspec ( thread )
-#define PROGPATH "c:\\webstone\\webclient"
-#define FILENAME_SIZE 256
-#define HAVE_VPRINTF 1
-
-#define SIGCHLD 0 /* dummy value */
-#define SIGALRM 0 /* dummy value */
-typedef int pid_t;
-typedef unsigned short ushort;
-#define MAXPATHLEN 512
-
-
-
-#else /* not WIN32 */
-#define NETREAD(sock, buf, len) read(sock, buf, len)
-#define NETWRITE(sock, buf, len) write(sock, buf, len)
-#define NETCLOSE(sock) close(sock)
-#define BADSOCKET(sock) ((sock) < 0)
-#define BADSOCKET_ERRNO(sock) (BADSOCKET(sock) || errno)
-#define BADSOCKET_VALUE (-1)
-#define S_ADDR s_addr
-
-#ifdef USE_TIMEZONE
-#define GETTIMEOFDAY(timeval,tz) gettimeofday(timeval, NULL)
-#else
-#define GETTIMEOFDAY(timeval,tz) gettimeofday(timeval, tz)
-#endif /* USE_TIMEZONE */
-
-typedef unsigned short NETPORT;
-#define SRANDOM srandom
-#define RANDOM random
-#define THREAD
-#define PROGPATH "/tmp/webclient" /* "/usr/local/bin/webclient" */
-#define FILENAME_SIZE 1024
-#define HAVE_VPRINTF 1
-
-typedef int SOCKET;
-#define min(a,b) (((a) < (b)) ? a : b)
-#define max(a,b) (((a) > (b)) ? a : b)
-#endif /* WIN32 */
-
-
-/* function prototypes */
-
-#ifdef WIN32
-int getopt(int argc, char ** argv, char *opts);
-int getpid(void);
-int gettimeofday(struct timeval *curTimeP);
-int random_number(int max);
-SOCKET rexec(const char **hostname, NETPORT port, char *username, char *password,
- char *command, SOCKET *sockerr);
-void sleep(int secs);
-
-#else
-#ifdef NO_REXEC
-extern int rexec(char **, int, char *, char *, char *, int *);
-#endif
-#endif /* WIN32 */
-
-
-#ifndef HAVE_STRERROR
-/* strerror() is not available on SunOS 4.x and others */
-char *strerror(int errnum);
-
-#endif
-/* strerror() */
-
-
-#ifndef INADDR_NONE
-#define INADDR_NONE -1
-#endif
-
-/* !__SYSDEP_H__ */
-#endif
diff --git a/apps/JAWS/clients/WebSTONE/src/timefunc.c b/apps/JAWS/clients/WebSTONE/src/timefunc.c
deleted file mode 100644
index 9266348435a..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/timefunc.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/**************************************************************************
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-#ifndef WIN32
-#include <netdb.h>
-#include <sys/time.h>
-#include <sys/param.h>
-#else
-#include <windows.h>
-#include <winsock.h>
-#include <time.h>
-#endif /* WIN32 */
-#include <math.h>
-#include <stdio.h>
-#include "sysdep.h"
-#include "bench.h"
-
-double
-timevaldouble(struct timeval *tin)
-{
- return ((double)tin->tv_sec + ((double)tin->tv_usec / USECINSEC));
-}
-
-
-void
-doubletimeval(const double tin, struct timeval *tout)
-{
- tout->tv_sec = (long)floor(tin);
- tout->tv_usec = (long)((tin - tout->tv_sec) * USECINSEC );
-}
-
-
-void
-addtime(struct timeval *OrigTime, struct timeval *NewTime)
-{
- OrigTime->tv_usec += NewTime->tv_usec;
- if(OrigTime->tv_usec >= USECINSEC)
- {
- /*
- * NEED TO CARRY 1.
- */
- OrigTime->tv_sec++;
- OrigTime->tv_usec -= USECINSEC;
- }
- OrigTime->tv_sec += NewTime->tv_sec;
-}
-
-
-void
-compdifftime(struct timeval *EndTime, struct timeval *StartTime, struct timeval *DiffTime)
-{
- struct timeval endtime = *EndTime;
-
- if((endtime.tv_usec - StartTime->tv_usec) < 0)
- {
- /*
- * NEED TO BORROW.
- */
- endtime.tv_usec += USECINSEC;
- endtime.tv_sec--;
- }
- DiffTime->tv_usec = endtime.tv_usec - StartTime->tv_usec;
- DiffTime->tv_sec = endtime.tv_sec - StartTime->tv_sec;
-}
-
-
-void
-mintime(struct timeval *CurrMinTime, struct timeval *CheckMinTime)
-{
- if(CheckMinTime->tv_sec < CurrMinTime->tv_sec)
- {
- *CurrMinTime = *CheckMinTime;
- return;
- }
- if(CheckMinTime->tv_sec == CurrMinTime->tv_sec)
- {
- if(CheckMinTime->tv_usec < CurrMinTime->tv_usec)
- {
- *CurrMinTime = *CheckMinTime;
- return;
- }
- }
-}
-
-
-void
-maxtime(struct timeval *CurrMaxTime, struct timeval *CheckMaxTime)
-{
- if(CheckMaxTime->tv_sec > CurrMaxTime->tv_sec)
- {
- *CurrMaxTime = *CheckMaxTime;
- return;
- }
- if(CheckMaxTime->tv_sec == CurrMaxTime->tv_sec)
- {
- if(CheckMaxTime->tv_usec > CurrMaxTime->tv_usec)
- {
- *CurrMaxTime = *CheckMaxTime;
- return;
- }
- }
-}
-
-void
-avgtime(struct timeval *TotalTime, int NumTimes, struct timeval *AvgTime)
-{
- double meantime;
-
- meantime = mean(timevaldouble(TotalTime), NumTimes);
-
- doubletimeval(meantime, AvgTime);
-}
-
-
-void
-sqtime(struct timeval *Time, struct timeval *SqTime)
-{
- double sec;
-
- sec = timevaldouble(Time);
- sec *= sec; /* square */
-
- doubletimeval(sec, SqTime);
-}
-
-
-void
-variancetime(struct timeval *SumTime, double SumSquareTime, int NumTimes, struct timeval *VarianceTime)
-{
- double result;
-
- result = variance(timevaldouble(SumTime), SumSquareTime, NumTimes);
-
- doubletimeval(result, VarianceTime);
-}
-
-
-void
-stddevtime(struct timeval *SumTime, double SumSquareTime,
- int NumTimes, struct timeval *StdDevTime)
-{
- double result;
-
- result = stddev(timevaldouble(SumTime), SumSquareTime, NumTimes);
-
- doubletimeval(result, StdDevTime);
-}
-
-double
-thruputpersec(const double n, struct timeval *t)
-{
- double tv;
-
- tv = timevaldouble(t);
- if (tv != 0)
- return n / timevaldouble(t);
- else
- return 0;
-}
-
-
diff --git a/apps/JAWS/clients/WebSTONE/src/timefunc.h b/apps/JAWS/clients/WebSTONE/src/timefunc.h
deleted file mode 100644
index a1514358316..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/timefunc.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/**************************************************************************
- $Header$
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-#ifndef __TIMEFUNC_H__
-#define __TIMEFUNC_H__
-
-extern double timevaldouble(struct timeval *);
-extern void doubletimeval(const double, struct timeval *);
-
-extern void addtime(struct timeval *, struct timeval *);
-extern void compdifftime(struct timeval *, struct timeval *, struct timeval *);
-extern void mintime(struct timeval *, struct timeval *);
-extern void maxtime(struct timeval *, struct timeval *);
-extern void avgtime(struct timeval *, int, struct timeval *);
-extern void variancetime(struct timeval *, double, int, struct timeval *);
-extern void stddevtime(struct timeval *, double, int, struct timeval *);
-
-extern void sqtime(struct timeval *, struct timeval *);
-
-extern double thruputpersec(const double, struct timeval *);
-
-#endif /* !__TIMEFUNC_H__ */
diff --git a/apps/JAWS/clients/WebSTONE/src/webclient.c b/apps/JAWS/clients/WebSTONE/src/webclient.c
deleted file mode 100644
index 881c9db0ae8..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/webclient.c
+++ /dev/null
@@ -1,1295 +0,0 @@
-/**************************************************************************
- * $Header$
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-#include <thread.h>
-
-#include <stdio.h>
-
-#ifdef WIN32
-#include <windows.h>
-#include <winsock.h>
-#include <time.h>
-#include <process.h>
-#include <io.h>
-#endif /* WIN32 */
-
-#include <errno.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifndef WIN32
-#include <netdb.h>
-#include <unistd.h>
-#endif /* WIN32 */
-
-#include <time.h>
-#include <math.h>
-
-#ifndef WIN32
-#include <sys/param.h>
-#endif /* WIN32 */
-
-#include <sys/types.h>
-
-#ifndef WIN32
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#include <sys/errno.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#endif /* WIN32 */
-
-#include <ctype.h>
-
-#include "sysdep.h"
-#include "bench.h"
-
-#define _BSD_SIGNALS
-#define INFINITY 100000000
-#define DEFAULTWWWPORT 80
-#define LOG_FILE "logfile"
-#ifdef WIN32
-#define DEBUG_FILE "c:/tmp/webstone-debug"
-#else
-#define DEBUG_FILE "/tmp/webstone-debug"
-#endif /* WIN32 */
-#define NCCARGS 4096
-
-/* global variables */
-
- THREAD FILE *debugfile = stderr;
- page_list_t *load_file_list; /* actually a dynamic array */
-
-int amclient = 0;
-int havewebserver = 0;
-int haveproxyserver = 0;
-int savefile = 0;
-NETPORT portnum = DEFAULTWWWPORT;
-int timeexpired = 0;
-int debug = 0;
-long int number_of_pages = 0;
-char webmaster[MAXHOSTNAMELEN];
-char webserver[MAXHOSTNAMELEN];
-char proxyserver[MAXHOSTNAMELEN];
-
-
-#ifdef WIN32
-HANDLE hSemaphore;
-int CounterSemaphore = 0; /* counter semaphore for children */
-#endif /* WIN32 */
-
-static void ClientThread(void *);
-
-/* used to bypass DNS/YP name resolution for every page */
-struct hostent webserv_phe, webmast_phe;
-struct protoent webserv_ppe, webmast_ppe;
-unsigned long webserv_addr, webmast_addr;
-short webserv_type, webmast_type; /* socket type */
-
-/* End of globals */
-
-
-static void
-usage(const char *progname)
-{
- returnerr("Usage: %s [-d] [-w webserver] [-p port_num]\n",
- progname);
- returnerr("\t[-c masterhost:port] [-t run_time | -l loops]\n");
- returnerr("\t[-n numclients] [-R]\n");
- returnerr("\t[-f config_file] [-u uilfile | url ...]\n");
- errexit("\n");
-} /* END usage() */
-
-static void
-alarmhandler(void)
-{
- /* RECEIVED AN ALARM SIGNAL */
- timeexpired = 1;
-} /* END alarmhandler() */
-
-#ifndef WIN32
-static void
-childhandler(void)
-{
- int status;
-
- /* RECEIVED A SIGNAL THAT A CHILD PROCESS HAS DIED */
- D_PRINTF( "A child process has died\n" );
- while (wait3(&status, WNOHANG, (struct rusage *)0) >= 0)
- {
- /* do nothing */
- ;
- }
-} /* END childhandler() */
-#endif /* WIN32 */
-
-
-/* look up the host name and protocol
- * called once by main() since all threads
- * use the same protocol and address
- */
-
-int resolve_addrs(char *host, char *protocol, struct hostent *host_phe, struct protoent *proto_ppe, unsigned long *addr,
- short *type) {
-struct hostent *phe;
-struct protoent *ppe;
-
- /* if IP address given, convert to internal form */
- if (host[0] >= '0' && host[0] <= '9') {
- *addr = inet_addr(host);
- if (*addr == INADDR_NONE)
- return(returnerr("Invalid IP address %s\n", host));
-
- } else {
- /* look up by name */
- phe = gethostbyname(host);
- if (phe == NULL)
- {
- D_PRINTF( "Gethostbyname failed: %s", neterrstr() );
- return(returnerr("Can't get %s host entry\n", host));
- }
- memcpy(host_phe, phe, sizeof(struct hostent));
- memcpy((char *)addr, phe->h_addr, sizeof(*addr));
- }
-
- /* Map protocol name to protocol number */
- ppe = getprotobyname(protocol);
-
- if (ppe == 0)
- {
- D_PRINTF( "protobyname returned %d\n", ppe );
- return(returnerr("Can't get %s protocol entry\n",protocol));
- }
- memcpy(proto_ppe, ppe, sizeof(struct protoent));
-
- D_PRINTF( "Protocol number %d\n", ppe->p_proto );
-
- /* Use protocol to choose a socket type */
- if (strcmp(protocol,"udp") == 0)
- {
- *type = SOCK_DGRAM;
- }
- else
- {
- *type = SOCK_STREAM;
- D_PRINTF( "Choosing SOCK_STREAM %d type %d %s\n",
- SOCK_STREAM, *type, neterrstr() );
- }
-
- return 0;
-}
-
-/* connect to a socket given the hostname and protocol */
-SOCKET
-connectsock(char *host, NETPORT portnum, char *protocol)
- {
- struct sockaddr_in sin; /* an Internet endpoint address */
- SOCKET s; /* socket descriptor */
- int type; /* socket type */
- short proto;
- int returnval; /* temporary return value */
-
- D_PRINTF( "Beginning connectsock; host=%s port=%d proto=%s\n", host,
- portnum, protocol );
-
- sin.sin_family = AF_INET;
- memset((char *)&sin, 0, sizeof(sin));
- D_PRINTF( "Zeroed address structure\n" );
-
- sin.sin_port = htons(portnum);
- D_PRINTF( "Set port number %d\n", portnum );
-
- /* get the contact information */
- if (strcmp(host, webserver) == 0) {
- sin.sin_addr.S_ADDR = webserv_addr;
- sin.sin_family = PF_INET;
- proto = webserv_ppe.p_proto;
- type = webserv_type;
- } else if (strcmp(host, webmaster) == 0) {
- sin.sin_addr.S_ADDR = webmast_addr;
- sin.sin_family = PF_INET;
- proto = webmast_ppe.p_proto;
- type = webmast_type;
- } else {
- struct hostent host_phe;
- struct protoent host_ppe;
- unsigned long host_addr;
- short host_type; /* socket type */
-
- if (resolve_addrs(host, "tcp", &host_phe, &host_ppe, &host_addr, &host_type))
- return returnerr("Can't resolve hostname %s in get()\n", host);
- sin.sin_addr.S_ADDR = host_addr;
- sin.sin_family = PF_INET;
- proto = host_ppe.p_proto;
- type = host_type;
- }
-
- /* Allocate a socket */
- s = socket(PF_INET, type, proto);
- D_PRINTF( "Socket %d returned %d, %s\n",
- type, s, neterrstr() );
-
- if (BADSOCKET(s))
- {
- D_PRINTF( "Can't create socket: %s\n",neterrstr() );
- return BADSOCKET_VALUE;
- }
-
- /* Connect the socket */
- D_PRINTF( "Trying to connect %d with size %d, %s\n",
- s, sizeof(sin), neterrstr() );
- D_PRINTF( "Address is family %d, port %d, addr %s\n",
- sin.sin_family, ntohs(sin.sin_port),
- inet_ntoa(sin.sin_addr) );
-
- returnval = connect(s, (struct sockaddr *)&sin, sizeof(sin));
- D_PRINTF( "Connect returned %d, %s\n",
- returnval, neterrstr() );
- if (returnval < 0)
- {
- D_PRINTF( "Can't connect: %s\n", neterrstr() );
- NETCLOSE(s);
- return BADSOCKET_VALUE;
- }
-
- /* all done, returning socket descriptor */
- D_PRINTF( "Returning %d from connectsock call\n", s );
- return(s);
-
-} /* END connectsock() */
-
-SOCKET
-connecttomaster(char *str)
-{
- char *tempch;
- SOCKET sock;
- char msg[100];
- char ConnectStr[100]; /* Fix to handle multiple threads */
- int tries;
-
- strcpy(ConnectStr, str);
-
- /*
- * BREAK UP THE connectstr INTO A HOSTNAME/HOST-IP AND A PORT NUMBER.
- */
- if((tempch = strpbrk(ConnectStr,":")) == NULL)
- {
- /*
- * INCORRECT FORMAT OF ConnectStr. CORRECT FORMAT IS
- * HOSTNAME:PORT OR HOST-IP:PORT
- */
- D_PRINTF( "Incorrect format %s: use hostname:port or ip_addr:port\n",
- ConnectStr );
- return(returnerr("Incorrect format %s: use host:port or ip_addr:port\n",
- ConnectStr));
- }
-
- /*
- * ZERO OUT THE COLON SO WE HAVE TWO STRINGS, THE HOSTNAME AND THE PORT
- */
- *tempch = '\0';
- tempch++;
-
- /* loop here to connect to webmaster - TCP/IP allows no more than 5
- * connection requests outstanding at once and thus the webmaster may
- * reject a connection if there are a lot of client processes
- */
-#define MAXTRIES 30
-#define TRYDELAY_SEC 1
- for (tries = 0; tries < MAXTRIES; tries++) {
-
- sock = connectsock(ConnectStr,(NETPORT)atoi(tempch),"tcp");
-
- if (!BADSOCKET(sock))
- break;
-
- sleep(TRYDELAY_SEC);
- }
-
- if (BADSOCKET(sock))
- {
- /* ERROR CONNECTING TO MASTER PROCESS */
- return(returnerr("Could not connect to master process\n"));
- }
-
- /*
- * SIGNAL THE MASTER THAT WE ARE READY TO PROCEED. WHEN ALL
- * CHILD PROCESSES HAVE CONNECTED AND SENT THIS SIGNAL,
- * THE MASTER WILL ISSUE US A GO SIGNAL.
- */
- if(NETWRITE(sock,READYSTR,READYSTRLEN) != READYSTRLEN)
- {
- return(returnerr("Error sending READY message to master"));
- }
-
- memset(msg,0,GOSTRLEN+1);
- if(NETREAD(sock,msg,GOSTRLEN) != GOSTRLEN)
- {
- D_PRINTF( "Error receiving GO message from master: %s\n", neterrstr()
- );
- return(returnerr("Error receiving GO message from master\n"));
- }
-
- if(strncmp(GOSTR,msg,GOSTRLEN))
- {
- /*
- * WE RECEIVED A MESSAGE OTHER THAN GO. PRINT IT OUT AND RETURN ERROR
- */
- return(returnerr("Received non-GO message %s\n",msg));
- }
-
- return(sock);
-
-} /* END connecttomaster() */
-
-
-static void
-accumstats(rqst_timer_t *rqsttimer, page_stats_t *pagestats, stats_t *timestat)
-{
- rqst_stats_t rqststats;
-
-#define TFMT "%10u:%10u"
- /*
- * DUMP THE TIMING INFORMATION HERE, OR COMPUTE WHAT YOU WANT TO
- * PRINT OUT LATER.
- */
-
- D_PRINTF( "Total bytes read: %d \t Body size read: %d\n",
- rqsttimer->totalbytes,
- rqsttimer->bodybytes );
-
- D_PRINTF( "Enter time: " TFMT " \t Exit Time: " TFMT "\n",
- rqsttimer->entertime.tv_sec,
- rqsttimer->entertime.tv_usec,
- rqsttimer->exittime.tv_sec,
- rqsttimer->exittime.tv_usec );
- D_PRINTF( "Before connect: " TFMT " \t After connect: " TFMT "\n",
- rqsttimer->beforeconnect.tv_sec,
- rqsttimer->beforeconnect.tv_usec,
- rqsttimer->afterconnect.tv_sec,
- rqsttimer->afterconnect.tv_usec );
- D_PRINTF( "Before header: " TFMT " \t After header: " TFMT "\n",
- rqsttimer->beforeheader.tv_sec,
- rqsttimer->beforeheader.tv_usec,
- rqsttimer->afterheader.tv_sec,
- rqsttimer->afterheader.tv_usec );
- D_PRINTF( "After body: " TFMT "\n",
- rqsttimer->afterbody.tv_sec,
- rqsttimer->afterbody.tv_usec );
-
- rqstat_times(&(rqststats), rqsttimer);
- rqstat_sum(&(timestat->rs), &(rqststats));
- rqstat_sum(&(pagestats->rs), &(rqststats));
-
- if (rqsttimer->page_number != 999)
- {
- timestat->page_numbers[rqsttimer->page_number] += 1;
- }
-
-#undef TFMT
-} /* END accumstats */
-
-
-/*
- * fetch the set of files that constitute a page
- *
- * maxcount = the number of files in the WWW page
- * pageval = the number of the WWW page (offset in load_file_list[])
- * (if -1, use page # 0 - does this still work?)
- *
- * returns the number of files retrieved
- */
-static int
-makeload(int maxcount, int pageval, THREAD rqst_timer_t *timerarray, THREAD stats_t *timestat, THREAD SOCKET mastersock, THREAD page_stats_t *page_stats)
-{
- int cnt;
- int returnval;
- page_stats_t page_stats_tmp;
- char server[MAXHOSTNAMELEN];
-
- NETPORT loc_portnum;
-
- D_PRINTF( "Starting makeload(maxcount %d, pageval %d)\n",
- maxcount, pageval );
-
- strcpy( server, webserver); /* Put in default value */
-
- page_stats_init(&page_stats_tmp);
- D_PRINTF( "Page stats initialized\n" );
-
- for (cnt = 0; cnt < maxcount; cnt++)
- {
- D_PRINTF( "Loop count %d in makeload()\n", cnt );
- if (pageval == -1)
- {
- pageval = cnt;
- }
- if (timeexpired)
- {
- break;
- }
-
- /* check for a filename */
- if (strlen(load_file_list[pageval].filename[cnt]) < 1)
- {
- D_PRINTF( "Bad filename at pageval %d, count %d\n",
- pageval, cnt );
- return(returnerr("Bad filename at pageval %d, count %d\n",
- pageval, cnt));
- }
-
- /* if (load_file_list[pageval].port_number[cnt] != 0)
- {
- loc_portnum = load_file_list[pageval].port_number[cnt];
- }
- else
- {
- loc_portnum = portnum;
- } */
- loc_portnum = portnum;
- if ((load_file_list[pageval].servername[cnt] != NULL)
- &&
- *load_file_list[pageval].servername[cnt])
- {
- D_PRINTF( "Copying URL server %s to server\n",
- load_file_list[pageval].servername[cnt] );
- strcpy(server, load_file_list[pageval].servername[cnt]);
- }
-
- if (haveproxyserver)
- {
- D_PRINTF( "Copying proxy %s to webserver\n", proxyserver );
- strcpy(server, proxyserver);
- }
-
-
- D_PRINTF( "Calling get(%s, %d, %s, &(timearray[%d]))\n",
- server, loc_portnum, load_file_list[pageval].filename[cnt],
- cnt );
-
- returnval = get(server, loc_portnum,
- load_file_list[pageval].filename[cnt],
- &(timerarray[cnt]));
- if (returnval < 0)
- {
- D_PRINTF( "***GET() RETURNED AN ERROR\n" );
- }
-
- /*
- * DID GET() RETURN A VALID TIME?
- */
- if ((returnval == 0) && (timerarray[cnt].valid == 2))
- {
- timerarray[cnt].page_number = pageval;
-
- accumstats(&timerarray[cnt], &page_stats_tmp, timestat);
- }
- else if (!timeexpired) /* INVALID, INCREMENT THE ERROR COUNTER */
- {
- D_PRINTF( "GET error counter incremented\n" );
- timestat->rs.totalerrs++;
- }
-
- if (amclient) {
- fd_set readfds;
- struct timeval timeout;
- int rv;
-
- timeout.tv_sec = 0;
- timeout.tv_usec = 0;
- FD_ZERO(&readfds);
- FD_SET(mastersock, &readfds);
-
- /* if the webmaster has aborted, quit */
- D_PRINTF("Before select() on webmaster socket\n");
- if (rv = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout)) {
- D_PRINTF("select() returned %d\n", rv);
- D_PRINTF("Client terminating at request of webmaster\n");
- exit(2);
- }
- }
-
- } /* END for cnt */
-
- /*
- * DO WE HAVE A VALID RETURN FROM GET()?
- * WHY NOT USE returnval HERE?
- */
- if ((returnval == 0) &&
- (cnt == load_file_list[pageval].num_of_files) &&
- (timerarray[cnt-1].valid == 2))
- {
- rqst_stats_t *ps_rs;
- rqst_stats_t *pst_rs;
-
- ps_rs = &(page_stats[pageval].rs);
- pst_rs = &(page_stats_tmp.rs);
-
- rqstat_sum(ps_rs, pst_rs);
-
- page_stats[pageval].totalpages++;
-
- if (page_stats[pageval].page_size == 0)
- {
- page_stats[pageval].page_size = (unsigned)
- page_stats_tmp.rs.totalbody;
- }
- }
-
- D_PRINTF( "\nMakeload output page %d: %d errors, %d pages\n",
- pageval, timestat->rs.totalerrs, page_stats[pageval].totalpages );
- D_PRINTF( "Makeload returning %d\n", cnt );
-
- return(cnt);
-
-} /* END makeload() */
-
-#ifdef WIN32
-/* close socket library at exit() time */
-void sock_cleanup(void) {
-
- WSACleanup();
-}
-#endif /* WIN32 */
-
-/* globalize variables that were in main() */
-long int numfiles = 0;
-int testtime = 0;
-int numloops = 0;
-int numclients = 0;
-int record_all_transactions = 0;
-int uil_filelist_f = 0; /* filedescriptor of URLs to fetch? */
-int verbose = 0;
-int total_weight;
-char uil_filelist[NCCARGS];
-char filelist[MAXNUMOFFILES][MAXPATHLEN];
-char configfile[MAXPATHLEN];
-char connectstr[MAXHOSTNAMELEN+10];
-
-void
-main(int argc, char *argv[])
-{
- int file_count=0;
- int getoptch;
- int currarg;
- extern char *optarg;
- extern int optind;
- int i, j;
- char *tempch;
- int err;
-
-#define SLEEP_USEC 100
-#ifdef WIN32
- WSADATA WSAData;
-#else
-
- struct timeval sleeptime;
-
- /* set the amount of time that we'll pause before sending a "." to the
- webmaster */
-
- sleeptime.tv_sec = SLEEP_USEC/1000000;
- sleeptime.tv_usec = SLEEP_USEC % 1000000;
-#endif /* WIN32 */
-
- debugfile = stderr;
-
-#ifdef WIN32
- MessageBeep(~0U); /* announce our existence */
- MessageBeep(~0U);
- MessageBeep(~0U);
-
- err = WSAStartup(MAKEWORD(1,1), &WSAData);
- if (err != 0) {
- errexit("Error in WSAStartup()\n");
- }
-
- atexit(sock_cleanup);
-
- SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_HIGHEST);
-
- /* create semaphore in locked state */
- hSemaphore = CreateSemaphore(NULL, 0, 1, NULL);
- if(hSemaphore == NULL)
- {
- errexit("Create semaphore failed: %d", GetLastError());
- }
-#endif /* WIN32 */
-
- memset(webserver, 0, sizeof(webserver));
- memset(webmaster, 0, sizeof(webmaster));
- memset(proxyserver, 0, sizeof(proxyserver));
- memset(connectstr, 0, sizeof(connectstr));
-
- /*
- * PARSE THE COMMAND LINE OPTIONS
- */
-
- while((getoptch = getopt(argc,argv,"P:f:t:l:p:u:R:w:c:n:sdv")) != EOF)
- {
- switch(getoptch)
- {
- case 'c':
- sprintf(connectstr, "%s", optarg);
- amclient = 1;
- printf("%s", OKSTR); /* sent back to webmaster */
- fflush(stdout);
- break;
- case 'd':
- debug = 0; /* sumedh */
- break;
- case 'f':
- sprintf(configfile, "%s", optarg);
- break;
- case 'l':
- numloops = atoi(optarg);
- break;
- case 'n':
- numclients = atoi(optarg);
- break;
- case 'u':
- sprintf(uil_filelist, "%s", optarg);
- uil_filelist_f = 1;
- break;
- case 'p':
- portnum = atoi(optarg);
- break;
- case 's':
- savefile = 1;
- break;
- case 't':
- testtime = 60 * atoi(optarg);
- break;
- case 'v':
- verbose = 1;
- break;
- case 'w':
- havewebserver = 1;
- sprintf(webserver,"%s",optarg);
- break;
- case 'P':
- haveproxyserver = 1;
- sprintf(proxyserver, "%s", optarg);
- break;
- case 'R':
- record_all_transactions = 1;
- break;
- default:
- usage(argv[0]);
- }
- }
-
- returnerr("Client begins...\n");
- D_PRINTF( "Running in debug mode\n\n" );
-
- /* print the command line */
- for (i = 0; i < argc; i++)
- D_PRINTF( "%s ", argv[i] );
- D_PRINTF( "\n\n" );
-
- if(testtime && numloops)
- {
- /*
- * EITHER numloops OR testtime, BUT NOT BOTH.
- */
- usage(argv[0]);
- }
-
- if(havewebserver != 1)
- {
-#ifdef WIN32
- /*
- * THE SERVER'S NAME MUST BE SPECIFIED
- */
- returnerr("No WWW Server specified\n");
- usage(argv[0]);
-#else
- /* IF IT ISN'T, WE ASSUME LOCALHOST */
- sprintf(webserver, "%s", "localhost");
- havewebserver = 1;
-#endif /* WIN32 */
- }
-
- currarg = optind;
- numfiles = 0;
- while(currarg != argc)
- {
- /*
- * GET THE URLS TO RETRIEVE.
- */
- if (numfiles == MAXNUMOFFILES) {
- returnerr("Maximum of %d files on the command line.\n");
- usage(argv[0]);
- }
- sscanf(argv[currarg],"%s",filelist[numfiles]);
- numfiles++;
- currarg++;
- }
-
- if ((numfiles != 0) && uil_filelist_f)
- {
- returnerr("Both a filelist and UIL specified.\n");
- usage(argv[0]);
- }
-
- if((numfiles == 0) && !(uil_filelist_f))
- {
- /*
- * AT LEAST ONE FILE MUST BE SPECIFIED
- */
- returnerr("No UIL resources or filelist specified \n");
- usage(argv[0]);
- }
-
- if((numloops == 0) && (testtime == 0))
- {
- /*
- * NO SPECIFIED NUMBER OF LOOPS, AND NO TEST TIME
- */
- usage(argv[0]);
- }
- if(numclients > MAXPROCSPERNODE || numclients < 1)
- {
- returnerr("Number of Clients must be between 1 and %d\n", MAXPROCSPERNODE);
- exit(1);
- }
-
- /* allow use of IP address */
- if(amclient) {
- if((tempch = strpbrk(connectstr,":")) == NULL)
- {
- /*
- * INCORRECT FORMAT OF ConnectStr. CORRECT FORMAT IS
- * HOSTNAME:PORT OR HOST-IP:PORT
- */
- D_PRINTF( "Incorrect format %s: use hostname:port or ip_addr:port\n",
- connectstr );
- returnerr("Incorrect format %s: use host:port or ip_addr:port\n", connectstr);
- exit(1);
- } else {
- strncpy(webmaster, connectstr, tempch-connectstr);
- }
- if(resolve_addrs(webmaster, "tcp", &webmast_phe, &webmast_ppe, &webmast_addr, &webmast_type))
- exit(1);
- }
-
- if (haveproxyserver)
- {
- D_PRINTF( "Copying proxy %s to webserver\n", proxyserver );
- strcpy(webserver, proxyserver);
- }
-
- if (resolve_addrs(webserver, "tcp", &webserv_phe, &webserv_ppe, &webserv_addr, &webserv_type))
- exit(1);
-
- /*
- * INITIALIZE DATA
- */
- /* allocate space for dynamic arrays */
- load_file_list =
- (page_list_t *)mymalloc((MAXNUMOFPAGES)*sizeof(page_list_t));
-
- if (uil_filelist_f)
- {
- /* take a guess at the number of URLs in the file */
- D_PRINTF( "About to parse filelist %s\n", uil_filelist );
- number_of_pages = count_file_list(uil_filelist);
- numfiles = 1;
-
- /* IF WE HAVE A FILELIST, PARSE IT */
- /* allocate memory */
- D_PRINTF( "Allocating page list: %ld by %d\n",
- number_of_pages, numfiles );
- for (i=0; i<number_of_pages; i++)
- {
- for (j=0; j<MAXNUMOFFILES; j++)
- {
- load_file_list[i].servername[j] =
- (char *)mymalloc(URL_SIZE);
- load_file_list[i].filename[j] =
- (char *)mymalloc(URL_SIZE);
- }
- }
-
- D_PRINTF( "Parsing file list: %s\n", uil_filelist );
- parse_file_list(uil_filelist, load_file_list,
- &number_of_pages, &numfiles);
- /* free memory for pages that won't be used? */
- D_PRINTF( "Actual page list: %ld by %d\n",
- number_of_pages, MAXNUMOFFILES );
-
- D_PRINTF( "Setting up weighting for %ld pages\n",
- number_of_pages );
- total_weight = load_percent(load_file_list, number_of_pages);
- /* total_weight = load_percent(load_file_list, number_of_pages, pages); */
- }
- else
- {
- /* no uil file */
- number_of_pages = numfiles;
- }
-
- if (number_of_pages < 1)
- {
- /* no pages - exit */
- D_PRINTF( "No valid URLs found\n" );
- errexit("No valid URLs found\n");
- }
-
-#ifndef WIN32
- /*
- * IF WE ARE TO FORK ADDITIONAL CLIENTS ON THIS MACHINE,
- * WE MUST DO IT BEFORE WE CONNECT TO THE MASTER.
- *
- * FIRST, SET UP SIGNAL HANDLING
- */
- signal(SIGCHLD, childhandler);
- for(i = 0; i < numclients; i++)
- {
- thr_create (NULL, NULL, ClientThread, NULL, THR_BOUND, NULL);
-
- /* switch(fork())
- {
- case 0:
- numclients = 1;
- ClientThread(NULL);
- exit(0);
- break;
- case -1:
- errexit("Error forking child processes\n");
- exit(1);
- default:
- break;
- } */
- select(0,(fd_set *)0,(fd_set *)0, (fd_set *)0, &sleeptime);
- }
-
- /*
- * Wait for all children to exit.
- */
-
- while (thr_join(NULL, NULL, NULL) == 0);
-
- /* for(;;)
- {
- int pid = wait((int*)0);
- if ((pid == -1) && errno == ECHILD) break;
- } */
-#else
- /* start threads on NT */
- for (i = 0; i < numclients; i++)
- {
- if (_beginthread(ClientThread, 0, NULL) == -1)
- {
- errexit("_beginthread failed: %d", GetLastError());
- }
- }
-#endif /* WIN32 */
-
-#ifdef WIN32
- /* wait for children to get to sync point */
- while (CounterSemaphore < numclients)
- sleep(1);
- CounterSemaphore = 0;
-
- /* start all children simultaneously */
- ReleaseSemaphore(hSemaphore, 1, NULL);
-
- if (testtime) {
- sleep(testtime);
- alarmhandler(); /* signal end of test to threads */
- }
-
- /*
- * Wait for all threads to exit.
- */
- while (CounterSemaphore < numclients)
- sleep(1);
-
- CloseHandle(hSemaphore);
-#endif /* WIN32 */
-
- return;
-} /* end main() */
-
-void ClientThread(void *dummy)
-{
-
- THREAD FILE *logfile;
-
- THREAD stats_t timestat;
-
- THREAD rqst_timer_t timerarray[MAXNUMOFFILES];
- THREAD SOCKET mastersock = BADSOCKET_VALUE; /* connection to webmaster */
-
-
- THREAD page_stats_t *page_stats; /* actually a dynamic array */
-
- int loopcnt = 0;
- int filecnt;
- int loop;
- int ran_number;
- int page_index;
- int page_number;
- int file_count = 0;
- char file_name[50];
- struct timeval runningtime;
- time_t junk;
- int i;
- int returnval;
-
- /*
- * INITIALIZE DATA
- */
-
- page_stats =
- (page_stats_t *)mymalloc((number_of_pages)*sizeof(page_stats_t));
-
- for (i=0; i < number_of_pages; i++) {
- page_stats_init(&(page_stats[i]));
- }
-
- if (debug)
- {
- /*
- * OPEN A DEBUG FILE
- */
- fflush(stderr);
- sprintf(file_name, "%s.%d", DEBUG_FILE, (int)getpid());
- debugfile = fopen(file_name, "w+");
- if (debugfile == NULL)
- errexit("Can't open debug file\n");
- D_PRINTF( "Running in debug mode, %d\n",amclient );
- }
-
- if (record_all_transactions)
- {
- /*
- * OPEN A LOG FILE.
- */
- sprintf(file_name, "%s%d", LOG_FILE, (int)getpid());
- returnerr("Log file is %s\n", file_name);
- logfile = fopen(file_name, "w+");
- }
-
- /* Initialize random number generator */
- junk = getpid ();
- rand_r(&junk);
- D_PRINTF( "Random seed: %d\n", junk );
-
- for (i=0; i < MAXNUMOFFILES; i++)
- {
- rqtimer_init(&(timerarray[i]));
- }
- stats_init(&timestat);
-
- D_PRINTF( "Number of files %d\n", numfiles );
-
- timestat.total_num_of_files = numfiles;
-
- if (amclient)
- {
- /*
- * WE ARE A CLIENT PROCESS. (i.e. WE ARE NOT RUN BY A USER, BUT BY
- * THE MASTER WWWSTONE PROCESS. WE NEED TO CONNECT TO THE
- * MASTER WHO WILL SYNCHRONIZE ALL THE CLIENTS.
- */
- D_PRINTF( "Trying to connect with %s\n",connectstr );
-
- mastersock = connecttomaster(connectstr);
-
- D_PRINTF( "connecttomaster returns %d, %s\n",
- mastersock, neterrstr() );
-
- if(BADSOCKET(mastersock))
- {
- /*
- * ERROR CONNECTING TO THE MASTER. ABORT.
- */
- errexit("Error connecting to the master: %s\n", neterrstr());
- }
- } /* END IF CLIENT */
-
-#ifdef WIN32
- /* Tell parent we're ready */
- InterlockedIncrement(&CounterSemaphore);
-
- /* Wait for main() thread to release us */
- WaitForSingleObject(hSemaphore, INFINITE);
- ReleaseSemaphore(hSemaphore, 1, NULL);
-#endif /* WIN32 */
- if (testtime != 0)
- {
- /*
- * IF RUNNING A TIMED TEST, WE WILL LOOP
- * UNTIL THE ALARM GOES OFF.
- * WE'LL ALSO NEED TO SET THE SIGNAL HANDLER
- */
-#ifndef WIN32
- /*signal(SIGALRM, alarmhandler);*/
- /*
- * SEND SIGALRM IN testtime SECONDS
- */
- /*alarm(testtime);*/
-#endif /* WIN32 */
- }
-
- /*
- * AND THEY'RE OFF...
- */
-
- if (testtime)
- numloops = INFINITY;
- GETTIMEOFDAY(&(timestat.starttime), &(timestat.starttimezone));
-
- /* LOOP UNTIL WE HIT numloops, OR WE RUN OUT OF TIME */
- for(loopcnt = 0; (loopcnt < numloops) && !timeexpired; loopcnt++)
- {
- /*
- * THIS IS WHERE LOAD TESTING IS DONE.
- * GET A RANDOM NUMBER, THEN INDEX INTO THE
- * PAGE, AND THEN REQUEST THAT SET OF FILES.
- */
- if (uil_filelist_f) /* HAVE FILELIST */
- {
- D_PRINTF( "Have filelist\n" );
- /* if (testtime != 0) /* RUNNING IN TIMED MODE */
- if (1)
- {
- D_PRINTF( "Running in timed mode\n" );
- /* random number between 0 and totalweight-1 */
- junk = getpid ();
- ran_number = (rand_r(&junk) % total_weight);
- D_PRINTF( "random %ld\n", ran_number );
-
- /* loop through pages, find correct one
- * while ran_number is positive, decrement it
- * by the load_num of the current page
- * example: ran_number is 5, pages have weights of 10 and 10
- * first iteration page_index = 0, ran_number = -5
- * iteration halted, page_index = 0
- */
- page_index = -1;
- while (ran_number >= 0)
- {
- page_index++;
- D_PRINTF( "Current page index %d: %ld - %d\n",
- page_index, ran_number,
- load_file_list[page_index].load_num
- );
- ran_number -= load_file_list[page_index].load_num;
- }
-
- if (page_index >= number_of_pages) { page_index--; }
-
- D_PRINTF( "Final page index %d\n", page_index );
- filecnt = makeload(load_file_list[page_index].num_of_files,
- page_index, timerarray, &timestat, mastersock, page_stats);
- testtime = 1;
- }
- else /* NOT RUNNING IN TIMED MODE */
- {
- for (page_number = 0;
- page_number < number_of_pages;
- page_number++)
- {
- filecnt = makeload(load_file_list[page_number].num_of_files,
- page_number, timerarray, &timestat, mastersock, page_stats);
-
- } /* END for page_number */
- } /* END if/else TIMED MODE */
- }
- else /* NO FILELIST */
- {
- D_PRINTF( "No filelist\n" );
- /*
- * LOOP THROUGH UNTIL numfiles TIMES OR UNTIL TIMER EXPIRES
- * AND ALARM SETS filecnt TO INFINITY.
- */
-
- /* does this still work?? */
- /* filecnt = makeload(numfiles, -1, timerarray); */
- } /* END if HAVE FILELIST */
-
- if (filecnt > 0)
- file_count += filecnt;
-
- } /* END while loopcnt */
-
- GETTIMEOFDAY(&(timestat.endtime), &(timestat.endtimezone));
- D_PRINTF( "Test run complete\n" );
- signal(SIGALRM, NULL);
-
- if (testtime == 0)
- {
- numfiles = loopcnt;
-
- if (uil_filelist_f)
- {
- numfiles = file_count;
- }
- }
-
- /* This option ( "-R" ) looks broken (e.g. l > 50) -- JEF 2/15/96 */
- if (record_all_transactions)
- {
- /*
- * DUMP THE LOG FILE INFORMATION.
- */
- for (loop=0; loop < (loopcnt * file_count); loop++)
- {
- fprintf(logfile, " entertime \t%d.%d\n"
- " beforeconnect \t%d.%d\n"
- " afterconnect \t%d.%d\n"
- " beforeheader \t%d.%d\n"
- " afterheader \t%d.%d\n"
- " afterbody \t%d.%d\n"
- " exittime \t%d.%d\n"
- " total bytes \t%d\n"
- " body bytes\t%d\n",
- timerarray[loop].entertime.tv_sec,
- timerarray[loop].entertime.tv_usec,
- timerarray[loop].beforeconnect.tv_sec,
- timerarray[loop].beforeconnect.tv_usec,
- timerarray[loop].afterconnect.tv_sec,
- timerarray[loop].afterconnect.tv_usec,
- timerarray[loop].beforeheader.tv_sec,
- timerarray[loop].beforeheader.tv_usec,
- timerarray[loop].afterheader.tv_sec,
- timerarray[loop].afterheader.tv_usec,
- timerarray[loop].afterbody.tv_sec,
- timerarray[loop].afterbody.tv_usec,
- timerarray[loop].exittime.tv_sec,
- timerarray[loop].exittime.tv_usec,
- timerarray[loop].totalbytes,
- timerarray[loop].bodybytes);
- } /* end for loop */
- } /* end if recording all transactions */
-
- D_PRINTF( "total errors: %d\n",timestat.rs.totalerrs );
- /* gethostname(timestat.hostname,MAXHOSTNAMELEN); */
- /* D_PRINTF( "Test for host: %s\n",timestat.hostname ); */
- D_PRINTF( "Server is: %s running at port number: %d\n",
- webserver,portnum );
-
- /* sprintf(timestat.hostname,"%s:%d",timestat.hostname,getpid()); */
- if (amclient) /* CLIENT TO A WEBMASTER */
- {
- char *stats_as_text;
-
- /*
- * SEND THE TIMING DATA TO THE MASTER
- */
- stats_as_text = stats_to_text(&timestat);
- D_PRINTF( "stats_to_text returned %s\n", stats_as_text );
-
- returnval = senddata(mastersock, stats_as_text,
- SIZEOF_STATSTEXTBASE + number_of_pages*SIZEOF_DOUBLETEXT);
- D_PRINTF( "Wrote time stats to master %d\n", returnval );
-
- if (returnval < 1)
- {
- D_PRINTF( "Error while writing time stats: %s\n",
- neterrstr() );
- errexit("Error while writing time stats: %s\n",
- neterrstr());
- }
-
- if (uil_filelist_f)
- /* write pagestats */
- {
- char *page_stats_as_text;
- for (i = 0; i < number_of_pages; i++)
- {
- D_PRINTF( "On page_stats[%d]\n", i );
- page_stats_as_text = page_stats_to_text(&page_stats[i]);
- returnval = strlen(page_stats_as_text);
- D_PRINTF( "page_stats_to_text[%d] returned %d\n",
- i, returnval );
- returnval = senddata(mastersock, page_stats_as_text,
- SIZEOF_PAGESTATSTEXT);
- if (returnval < 1)
- {
- D_PRINTF( "Error while writing page_stats[%d]: %s\n",
- i, neterrstr() );
- errexit("Error while writing page_stats[%d]: %s\n",
- i, neterrstr());
- } /* end if */
- D_PRINTF( "Wrote %d bytes of page_stats[%d] to master\n",
- returnval, i );
- } /* end for */
- } /* end if filelist */
-
- D_PRINTF( "About to close socket\n" );
- if (NETCLOSE(mastersock))
- D_PRINTF( "Close socket error: %s\n", neterrstr() );
- }
- else /* NOT A CLIENT TO A WEBMASTER */
- {
- if (testtime)
- {
- printf("Test ran for: %d minutes\n",(testtime/60));
- }
- else
- {
- printf("Test ran for: %d iterations.\n",numloops);
- }
- compdifftime(&(timestat.endtime), &(timestat.starttime),
- &(runningtime));
- printf("Total time of test (sec) %d.%d\n", runningtime.tv_sec,
- runningtime.tv_usec);
- printf("Files retrieved per iteration: %d\n",numfiles); /* 'per iteration' */
- printf("----------------------------------\n");
- printf("Totals:\n\n");
- rqstat_print(&(timestat.rs));
-
- if (timestat.rs.totalconnects == 0)
- goto end;
- printf("Thruput = %5.2lf Kbytes/sec\n",
- thruputpersec(timestat.rs.totalbytes, &runningtime) / 1000);
-
- if (uil_filelist_f && numloops && verbose)
- {
- for (loop = 0; loop < number_of_pages; loop++)
- {
- if (timestat.page_numbers[loop] != 0)
- {
- printf ("===============================================================================\n");
- printf ("Page # %d\n\n", loop);
- printf ("Total number of times page was hit %d\n",
- page_stats[loop].totalpages);
- rqstat_print(&(page_stats[loop].rs));
- printf ("Page size %d \n", page_stats[loop].page_size);
- printf ("===============================================================================\n\n");
- } /* END if timestat */
- } /* END for loop */
- } /* END if filelist */
- } /* END if client */
-
-end:
- if(record_all_transactions)
- fclose(logfile);
- if(debug)
- {
- D_PRINTF( "Client exiting.\n" );
- fclose(debugfile);
- }
-
-#ifdef WIN32
- /* tell parent we're done */
- InterlockedIncrement(&CounterSemaphore);
-#endif /* WIN32 */
-
-} /* END ClientThread() */
diff --git a/apps/JAWS/clients/WebSTONE/src/webmaster.c b/apps/JAWS/clients/WebSTONE/src/webmaster.c
deleted file mode 100644
index f98e073a10a..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/webmaster.c
+++ /dev/null
@@ -1,1417 +0,0 @@
-/**************************************************************************
-$Header$
- * *
- * Copyright (C) 1995 Silicon Graphics, Inc. *
- * *
- * These coded instructions, statements, and computer programs were *
- * developed by SGI for public use. If any changes are made to this code*
- * please try to get the changes back to the author. Feel free to make *
- * modifications and changes to the code and release it. *
- * *
- **************************************************************************/
-
-#include <stdio.h>
-#include <errno.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-#ifndef WIN32
-#include <unistd.h>
-#endif /* WIN32 */
-
-#include <math.h>
-
-#ifndef WIN32
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/errno.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#else
-#define FD_SETSIZE 1024 /* max size for select() - keep before <winsock.h>
- * and same size as MAXCLIENTS */
-#include <windows.h>
-#include <winsock.h>
-#include <io.h>
-#include <process.h>
-#endif /* WIN32 */
-
-#include "sysdep.h"
-#include "bench.h"
-
-/* command line options/data */
-int savefile = 0;
-int debug = 0;
-int norexec = 0;
-int haveproxyserver = 0;
-char proxyserver[MAXHOSTNAMELEN];
-char network_mask_str[30] = "255.255.255.0";
-unsigned network_mask = 0;
-int servaddrin_config = 0;
-int dumpall = 0;
-int testtime = 0;
-int havewebserver = 0;
-int numloops = 0;
-NETPORT portnum = 0;
-int redirect = 0;
-int record_all_transactions = 0;
-int uil_filelist_f = 0;
-int verbose = 0;
-char webserver[MAXHOSTNAMELEN];
-char configfile[MAXPATHLEN];
-char uil_filelist[NCCARGS];
-
-char filelist[256][MAXPATHLEN];
-fd_set zerofdset;
-
-/* other key data */
-long int number_of_pages = 0;
-int totalnumclients = 0;
-int num_rexecs = 0;
-SOCKET socknum[MAXCLIENTS];
-SOCKET sockIO[MAXTOTALPROCS];
-SOCKET sockErr[MAXTOTALPROCS];
-THREAD FILE *debugfile = stderr;
-struct hostent *master_phe; /* IP addresses for webmaster */
-struct timeval sumedh_start, sumedh_end;
-
-void HostEntCpy(struct hostent *dest, struct hostent *src);
-
-static void
-usage(const char *progname)
-{
-
- fprintf(stderr, "Usage: %s [-a] [-d] -f config_file [-l numloops]\n",
- progname);
- fprintf(stderr, " [-p port_num] [-r] [-s] [-t run_time] \n");
- fprintf(stderr, "\n");
- fprintf(stderr, "-w webserver URL [URL ...]\n\n");
- fprintf(stderr, "-a print timing information for all clients\n");
- fprintf(stderr, "-d turn on debug statements\n");
- fprintf(stderr, "-f config_file\tfile specifying clients\n");
- fprintf(stderr, "-l number of iterations to retrieve uils\n");
- fprintf(stderr, "-p port number of web server if not 80\n");
- fprintf(stderr, "-r redirect stdout of clients to /tmp/webstone.xxx\n");
- fprintf(stderr, "-s save client gets to /tmp/webstone.data.*\n");
- fprintf(stderr, "-t run_time\tduration of test in minutes\n");
- fprintf(stderr, "-w webserver\tname of webserver host to contact\n");
- fprintf(stderr, "-u URL file\tfilelist of URLs\n");
- fprintf(stderr, "-v verbose mode\n");
- fprintf(stderr, "-P servername\tuse proxy server for transactions\n");
- fprintf(stderr, "-W webserver addresses are in the config file\n");
- fprintf(stderr, "-R record all transactions\n");
- errexit("\n");
-}
-
-static SOCKET
-passivesock(const NETPORT portnum, const char *protocol, const int qlen)
-{
- struct protoent *ppe; /* pointer to protocol info entry */
- struct sockaddr_in sin; /* Internet endpoint address */
- SOCKET s; /* socket descriptor */
- int type; /* socket type */
-
- D_PRINTF( "Beginning passivesock with errno %d\n",errno );
-
- D_PRINTF( "Zeroing address structure\n" );
- memset((char *)&sin, 0, sizeof(sin));
-
- sin.sin_family = AF_INET;
- sin.sin_addr.s_addr = INADDR_ANY;
-
- /* NOT USED: Map service name to portnumber */
- D_PRINTF( "Mapping portnum errno %d\n",errno );
- sin.sin_port = htons(portnum);
-
- /* Map protocol name to number */
- D_PRINTF( "Mapping protocol name errno %d\n",errno );
- if ((ppe = getprotobyname(protocol)) == 0)
- {
- errexit("Can't get \"%s\" protocol entry\n", protocol);
- }
- errno = 0;
-
- /* use protocol to choose socket type */
- D_PRINTF( "Changing socket type, errno %d\n",errno );
- if (strcmp(protocol, "udp") == 0)
- {
- type = SOCK_DGRAM;
- D_PRINTF( "Choosing SOCK_DGRAM\n" );
- }
- else
- {
- type = SOCK_STREAM;
- D_PRINTF( "Choosing SOCK_STREAM, errno %d\n",errno );
- }
-
- /* allocate a socket */
- s = socket(PF_INET, type, ppe->p_proto);
- if (BADSOCKET(s))
- {
- D_PRINTF( "Socket PF_INET %d %d returned %d with %s\n",
- type, ppe->p_proto, s, neterrstr() );
- errexit("Can't create socket: %s\n", neterrstr());
- }
- D_PRINTF( "Socket %d created with errno %d\n",s,errno );
-
- /* Bind the socket */
- if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) < 0)
- {
- errexit("Can't bind to port %d: %s\n", portnum, neterrstr());
- }
- D_PRINTF( "Bind succeeded\n" );
-
- /* If it's a stream, listen for connections */
- /* NOTE: ON NT, the listen() backlog parm is silently limited to 5 conns */
- if ((type == SOCK_STREAM) && BADSOCKET(listen(s, qlen)))
- {
- errexit("Can't listen on port %s: %s\n", portnum, neterrstr());
- }
- D_PRINTF( "Listen succeeded\n" );
-
- /* all done, return socket descriptor */
- return(s);
-}
-
-
-/* abort clients -- called by SIGINT handler */
-static void abort_clients(void)
-{
- /* Not supposed to have fprintf in a signal handler, but... */
- fprintf(stdout, "Webmaster received SIGINT. Terminating.\n");
- /* exit will close all open connections */
- exit(2);
-}
-
-/* signal handler for SIGINT */
-static void sig_int(int sig) {
-
- abort_clients();
-}
-
-#ifdef WIN32
-
-/* echo stdout/stderr from clients */
-void echo_client(void *stream)
-{
- SOCKET *sockarr;
- FILE *outfile;
- int which_stream = (int) stream;
- char buf[BUFSIZ];
- int i, len, rv;
- fd_set readfds;
-
- /* This code which handles the timeout may need
- to be ifdef'ed for WIN32 */
- struct timeval timeout;
-
- timeout.tv_sec = (long)5;
- timeout.tv_usec = (long)0;
-
- if (which_stream) {
- sockarr = sockIO;
- outfile = stdout;
- } else {
- sockarr = sockErr;
- outfile = stderr;
- }
-
- D_PRINTF( "echo_client running\n" );
- signal( SIGINT, SIG_DFL); /* restore default behavior
- for SIGINT */
-
- while (1) {
- FD_ZERO(&readfds);
- for (i = 0; i < num_rexecs; i++)
- if (sockarr[i] != BADSOCKET_VALUE)
- FD_SET(sockarr[i], &readfds);
- rv = select(num_rexecs, &readfds, NULL, NULL, &timeout);
- if ( rv == 0)
- continue;
- if (rv < 0 && WSAGetLastError() == WSANOTINITIALISED)
- return;
- if (rv < 0)
- errexit("Error in echo_client(): select() returns %d: %s\n", rv, neterrstr());
-
- /* loop over the sockets that are ready with data */
- for (i = 0; i < num_rexecs; i++) {
- if (sockarr[i] != BADSOCKET_VALUE && FD_ISSET(sockarr[i], &readfds)) {
- len = NETREAD(sockarr[i], buf, sizeof(buf));
- if (len <= 0) {
- /* mark connection closed */
- sockarr[i] = BADSOCKET_VALUE;
- if (len < 0 && WSAGetLastError() == WSANOTINITIALISED)
- return;
- if (len < 0)
- fprintf(stderr, "Error in echo_client() after NETREAD(): %s\n", neterrstr());
- continue;
- }
-
- /* copy to stdout or stderr */
- fwrite(buf, sizeof(char), len, outfile);
- }
- }
- }
- D_PRINTF( "Exiting echo_client\n" );
-}
-
-#else
-static int
-echo_client(char *hostname, const int fd)
-{
- /*
- * WRITE TEXT FROM FILE DESCRIPTOR INTO STDOUT
- */
- char buf[BUFSIZ];
- int cc;
- D_PRINTF( "echo_client running\n" );
-
- while (getppid() != 1)
- {
- cc = NETREAD(fd, buf, sizeof(buf));
- if (cc > 0)
- {
- write(STDOUT_FILENO, buf, cc);
- }
- }
- D_PRINTF( "Exiting echo_client\n" );
- NETCLOSE(fd);
-}
-#endif /* WIN32 */
-
-/* Picks the appropriate webmaster IP address based on the address of the client.
- * This is significant only for hosts with multiple interfaces
- *
- * return value is a string with the IP address or hostname (or NULL)
- */
-char *pick_webmaster_IP_address(char *client_hostname, struct hostent *master_phe,
- unsigned netmask) {
-static char buf[20];
-unsigned char addr[4];
-int client_addr;
-int i;
-
- if (client_hostname[0] >= '0' && client_hostname[0] <= '9') {
- /* we have an IP address */
- client_addr = inet_addr(client_hostname);
- if (client_addr == INADDR_NONE)
- return NULL;
- } else {
- /* we have a hostname, use the webserver hostname */
- return master_phe->h_name;
- }
-
- for (i = 0; master_phe->h_addr_list[i] != NULL; i++) {
- if ((*(int *)(master_phe->h_addr_list[i]) & netmask) ==
- (client_addr & netmask))
- goto gotit;
- }
- i = 0; /* give up */
-
-gotit:
- memcpy((char *)addr, master_phe->h_addr_list[i], sizeof(addr)); /* Internet specific */
- sprintf(buf, "%d.%d.%d.%d", addr[0], addr[1], addr[2], addr[3]);
- return buf;
-}
-
-/*
- Command line parsing
-*/
-
-void ParseCmdLine(int argc, char **argv )
-{
-char getoptch;
-int currarg;
-extern char *optarg;
-extern int optind;
-
- /*
- * PARSE THE COMMAND LINE OPTIONS
- */
- while((getoptch = getopt(argc,argv,"P:f:t:l:p:u:R:w:n:M:adrsvWX")) != (const char)EOF)
- {
- switch(getoptch)
- {
- case 'M':
- strcpy(network_mask_str, optarg);
- break;
- case 'P':
- haveproxyserver = 1;
- strcpy(proxyserver, optarg);
- break;
- case 'R':
- record_all_transactions = 1;
- break;
- case 'X':
- norexec = 1;
- break;
- case 'W':
- servaddrin_config = 1;
- break;
- case 'a':
- dumpall = 1;
- break;
- case 'd':
- debug = 1;
- break;
- case 'f':
- strcpy(configfile, optarg);
- break;
- case 'l':
- numloops = atoi(optarg);
- break;
- case 'p':
- portnum = atoi(optarg);
- break;
- case 'r':
- redirect = 1;
- break;
- case 's':
- savefile = 1;
- break;
- case 't':
- testtime = atoi(optarg);
- break;
- case 'u':
- uil_filelist_f = 1;
- strcpy(uil_filelist, optarg);
- break;
- case 'v':
- verbose = 1;
- break;
- case 'w':
- havewebserver = 1;
- strcpy(webserver, optarg);
- break;
- default:
- usage(argv[0]);
- } /* end switch */
- } /* end while */
-
- if (numloops && testtime)
- errexit("Can't have both -l and -t\n");
-
- if(!havewebserver && !servaddrin_config)
- {
- /*
- * THE SERVERS NAME MUST BE SPECIFIED
- */
-
- fprintf(stderr,"No WWW Server specified\n");
- usage(argv[0]);
- }
-
- if (havewebserver && servaddrin_config)
- {
- /*
- * CAN'T HAVE BOTH -w and -W
- */
- fprintf(stderr, "Can't have both -w and -W options\n");
- usage(argv[0]);
- }
-
- network_mask = inet_addr(network_mask_str);
- if (network_mask == INADDR_NONE) {
- fprintf(stderr, "Invalid network mask (-M %s)\n", network_mask_str);
- usage(argv[0]);
- }
-
- if(strlen(configfile) == 0)
- {
- /*
- * THE MASTER MUST HAVE A CONFIGURATION FILE TO READ.
- */
- fprintf(stderr,"No Configuration file specified\n");
- usage(argv[0]);
- }
- /* IF WE DO NOT HAVE A FILE LIST THEN THERE ARE UIL'S AT THE END OF THE
- * COMMAND LINE SO GRAB THEM.
- */
- if (uil_filelist_f == 0)
- {
- currarg = optind;
- number_of_pages = 0;
- while(currarg != argc)
- {
- /*
- * GET THE UILS TO RETRIEVE.
- */
-
- sscanf(argv[currarg],"%s",filelist[number_of_pages]);
- number_of_pages++;
- currarg++;
- }
- }
- else
- {
- /* have filelist; take a stab at the number of valid URLs */
- D_PRINTF( "About to parse filelist %s\n", uil_filelist );
- number_of_pages = count_file_list(uil_filelist);
- }
- if (number_of_pages == 0)
- {
- /*
- * AT LEAST ONE FILE MUST BE SPECIFIED
- */
- fprintf(stderr,"No URL resources specified\n");
- usage(argv[0]);
- }
-}
-
-/*
- This function sets up the socket we will use to synchronize with the
- clients.
- Returns the socket number if successful, doesn't return if it fails
-*/
-
-SOCKET SetupSyncSocket( serveraddr )
-struct sockaddr_in *serveraddr;
-{
- int sock,len;
-
- /*
- * SET UP THE SOCKET WE ARE GOING TO USE TO SYNCHRONIZE WITH THE CLIENTS.
- */
- D_PRINTF( "About to call sock %d %d\n", portnum, MAXCLIENTS );
-
- sock = passivesock(0, "tcp", MAXCLIENTS);
-
- if (BADSOCKET(sock))
- {
- errexit("Couldn't open socket %d: %s\n", sock, neterrstr());
- }
- D_PRINTF( "The passivesock call succeeded\n" );
-
- D_PRINTF( "calling getsockname\n" );
-
- len = sizeof(struct sockaddr);
- if(getsockname(sock, (struct sockaddr *)serveraddr, &len) < 0)
- {
- errexit("Could not get socket informaton\n");
- }
-
- return( sock );
-}
-
-/*
- Function which generates a commandline for the webclients
-*/
-void MakeCmdLine( commandline)
-char *commandline;
-{
- char tmpcommandline[NCCARGS];
- char hostname[MAXHOSTNAMELEN];
- char *webclient_path, *temp;
- int cnt;
- struct hostent *master_phe_tmp; /* temp. variable added by - Rajesh Shah*/
-
- /*
- * BUILD THE PORTIONS OF THE cmdline FOR EACH CLIENT THAT WE CAN BUILD NOW.
- * WE WILL FILL IN THE NUMBER OF CLIENTS LATER WITH AN sprintf.
- */
- D_PRINTF( "Calling gethostname\n" );
-
- if(gethostname(hostname,MAXHOSTNAMELEN) != 0)
- {
- errexit("Could not retrieve local host name");
- } else {
- /* convert hostname to address (to avoid DNS problems for webclients) */
- /* The following lines are add to copy the system
- buffer (output of gethostbyname()) into user area.
- This is because, there are very good chances that later
- on system buffer might be overwritten by some calls and
- still if your pointer is pointing to same addr. nothing
- but only trouble and trouble! Infact this is what
- happening when I tried to run webstone benchmark for more
- then one clients. It used to over write the webmaster name
- with the first client name and so remaining on client(s)
- the webclient process(es) were invoked with wrong webmaster
- name! This behaviour is observed Solaris 2.4 this bug
- can be hit in any OS. - Rajesh Shah 5/18/96 */
-
- /* master_phe = gethostbyname(hostname); */
- master_phe_tmp = gethostbyname(hostname);
- master_phe = (struct hostent *)malloc(sizeof(struct hostent));
- HostEntCpy(master_phe, master_phe_tmp);
- }
-
- /* set up executable pathname */
-#ifndef WIN32
- temp = getenv("TMPDIR");
-
- if ( temp && *temp ) {
- webclient_path = (char *)mymalloc( strlen(temp) + strlen("/webclient")
- + 1);
- strcpy(webclient_path, temp);
- strcat(webclient_path, "/webclient");
-
- } else
-#else
- temp = temp;
-#endif /* WIN32 */
- webclient_path = PROGPATH;
-
-
- D_PRINTF( "Path to webclient is: %s\n", webclient_path );
-
- sprintf(commandline,"%s", webclient_path);
-
- if(haveproxyserver)
- {
- sprintf(tmpcommandline, " -P %s", proxyserver);
- strcat(commandline, tmpcommandline);
- }
- if (debug)
- {
- strcat(commandline," -d");
- }
- if (numloops != 0)
- {
- sprintf(tmpcommandline," -l %d", numloops);
- strcat(commandline,tmpcommandline);
- }
- if (portnum)
- {
- sprintf(tmpcommandline," -p %d", portnum);
- strcat(commandline,tmpcommandline);
- }
- if (redirect)
- {
- strcat(commandline," -r");
- }
- if (savefile)
- {
- strcat(commandline," -s");
- }
- if (uil_filelist_f)
- {
- strcat(commandline," -u ");
- strcat(commandline,uil_filelist);
- }
- if (record_all_transactions)
- {
- strcat(commandline," -R");
- }
- if (testtime != 0)
- {
- sprintf(tmpcommandline," -t %d", testtime);
- strcat(commandline,tmpcommandline);
- }
-
- /*
- * SET UP A SPACE FOR THE NUMBER OF CLIENTS ON THE commandline.
- */
- sprintf(tmpcommandline,"%s -n %%d -w %%s -c %%s:%%d", commandline);
- strcpy(commandline,tmpcommandline);
-
- if (uil_filelist_f == 0)
- {
- cnt = 0;
- while(cnt < number_of_pages)
- {
- /*
- * PUT THE FILES AT THE END OF THE LIST.
- */
- strcat(commandline," ");
- strcat(commandline,filelist[cnt]);
- cnt++;
- }
- }
- puts(commandline);
-}
-
-/*
- rexec to the client hosts and start the webclients
-*/
-int RexecClients( commandline, clienthostname, serveraddr)
-char *commandline;
-char clienthostname[MAXCLIENTS][MAXHOSTNAMELEN];
-struct sockaddr_in *serveraddr;
-
-{
- int tmpfd;
- int numclients = 0;
- char tmpcommandline[NCCARGS];
- struct servent *inetport;
- int cnt;
- char buffer[NCCARGS];
- char login[MAXUSERNAME];
- char password[MAXPASSWD];
- FILE *fp;
- int returnval;
- char *tmphostname;
-
- memset(buffer, 0, sizeof(buffer));
-
- /*
- * OPEN UP THE CONFIG FILE. FOR EACH LINE IN THE CONFIG FILE, CHECK
- * ITS VALIDITY AND THEN rexec A COMMAND ON THE CLIENT.
- */
-
- if ((fp = fopen(configfile,"r")) == NULL)
- {
- errexit("Could not open config file %s\n", configfile);
- }
-
- if ((inetport = getservbyname("exec","tcp")) == NULL)
- {
- errexit("Could not get service name for exec/tcp\n");
- }
- D_PRINTF( "getservbyname returned %d\n", ntohs(inetport->s_port) );
-
- cnt = 0;
-
- D_PRINTF( "rexec loop\n" );
- while(1)
- {
- char webserver2[MAXHOSTNAMELEN];
- char linebuf[150];
- int num;
- char *primename;
-
- if (NULL == fgets(linebuf, sizeof(linebuf), fp))
- break;
- num = sscanf(linebuf,"%s %s %s %d %s",clienthostname[cnt],login,password,
- &numclients, webserver2);
- if (num < 4)
- break;
- if (servaddrin_config) {
- if (num == 4) {
- errexit("No webserver specified in config file for %s\n", clienthostname[cnt]);
- }
- strcpy(webserver, webserver2);
- }
-
- if (numclients <= 0)
- errexit("Number of clients must be >= 0\n");
- if (numclients > MAXPROCSPERNODE)
- {
- errexit("Number of clients per node can't exceed %d\n", MAXPROCSPERNODE);
- }
- totalnumclients += numclients;
-
- primename = pick_webmaster_IP_address(clienthostname[cnt], master_phe, network_mask);
- if (primename == NULL) {
- errexit("Bad client address %s for Client %d\n", clienthostname[cnt], cnt);
- }
-
- fprintf(stdout,"Client %d: %s \t# Processes: %d\n Webserver: %s\tWebmaster: %s:%d\n",
- cnt, clienthostname[cnt], numclients, webserver, primename,
- ntohs(serveraddr->sin_port));
- fflush(stdout);
- sprintf(tmpcommandline, commandline, numclients, webserver, primename,
- ntohs(serveraddr->sin_port));
-
- fprintf(stderr, "tmpcommandline: %s\n", tmpcommandline);
-
- D_PRINTF( "%s rexec %s\n",&clienthostname[cnt],tmpcommandline );
- if (norexec) {
- sleep(30); /* gives some time to start clients for debugging */
- } else {
-
- tmphostname = &(clienthostname[cnt][0]);
- tmpfd = rexec(&tmphostname, inetport->s_port, login, password,
- tmpcommandline, &sockErr[cnt]);
- if((sockIO[cnt] = tmpfd) < 0)
- {
- errexit("Could not rexec: rexec to client %s, cmdline %s failed\n",
- clienthostname[cnt],tmpcommandline);
- }
- }
-
-
- returnval = NETREAD(tmpfd, buffer, OKSTRLEN);
- D_PRINTF( "read returns %d, %s\n", returnval, buffer );
-
- if (returnval <= 0 || memcmp(buffer, OKSTR, OKSTRLEN) != 0)
- {
- errexit("rexec to client %s, cmdline %s received error %s\n",
- clienthostname[cnt],tmpcommandline, buffer);
- }
-
-
- cnt++;
- if (cnt > MAXCLIENTS || cnt > FD_SETSIZE)
- {
- errexit("Number of Clients can't exceed %d\n", MAXCLIENTS);
- }
- }
-
- num_rexecs = cnt;
- if (totalnumclients > MAXTOTALPROCS)
- {
- errexit("Total number of processes can't exceed %d\n",
- MAXTOTALPROCS);
- }
-
-#ifndef WIN32
- /* NOW WE NEED TO HANDLE THE OUTPUT FROM THE REXEC.
- * TO DO THIS, WE FORK, THEN HAVE ONE PROCESS READ FROM TMPFD.
- * THE OTHER PROCESS CONTINUES WITH THE PROGRAM
- */
- D_PRINTF( "Forking webclient stderr/stdout processes\n" );
- switch (fork())
- {
- case -1: /* ERROR */
- errexit("fork: %s\n", strerror(errno));
- case 0: /* CHILD */
- exit(echo_client(clienthostname[cnt], tmpfd));
- default: /* PARENT */
- break;
- }
-#else
- /* start threads to echo stdout/stderr from clients */
- _beginthread(echo_client, 0, (void *)0);
- _beginthread(echo_client, 0, (void *)1);
-#endif /* WIN32 */
-
- fprintf(stdout,"\n");
- fprintf(stdout,"\n");
- fclose(fp);
-
- return totalnumclients;
-}
-
-void GetReady( fdset, totalnumclients, sock )
-fd_set *fdset;
-int totalnumclients;
-int sock;
-{
- int cnt,len;
- fd_set tmpfdset, leftfdset;
- char buffer[NCCARGS];
-
- /*
- * NOW WE NEED TO ACCEPT ALL THE CONNECTIONS FROM THE CLIENTS,
- * ACCEPT ALL THE READY MESSAGES
- */
-
- D_PRINTF( "Beginning accept loop\n" );
- for (cnt = 0; cnt < totalnumclients; cnt++)
- {
- D_PRINTF( "Client %d:\t", cnt );
-
- {
- fd_set readfds;
- struct timeval timeout;
- int rv;
-
- timeout.tv_sec = MAX_ACCEPT_SECS;
- timeout.tv_usec = 0;
- FD_ZERO(&readfds);
- FD_SET(sock, &readfds);
-
- /* if we're hung, quit */
- D_PRINTF("Before select() on listen() socket\n");
- if (!(rv = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout))) {
- fprintf(stdout,
- "Listen timeout after %d seconds (%d clients so far)\n",
- MAX_ACCEPT_SECS, cnt);
- D_PRINTF("select() timed out after %d seconds\n", MAX_ACCEPT_SECS);
- errexit("Webmaster terminating\n");
- }
- }
-
- if(BADSOCKET(socknum[cnt] = accept(sock, NULL, 0)))
- {
- /*
- * ERROR accepting FROM THE CLIENTS. WE NEED TO ISSUE AN
- * ABORT TO ALL.
- */
- abort_clients();
- errexit("Error accepting from one of the clients: %s", neterrstr());
- } else
- {
- /*
- * SET THE FD IN THE MASK
- */
- FD_SET(socknum[cnt],fdset);
- }
- D_PRINTF( "on socket %d\n",socknum[cnt] );
- }
- D_PRINTF( "\n" );
-
- /*
- * WAIT FOR A READY.
- */
- sleep(1);
- fprintf(stdout,"Waiting for READY from %d clients\n",totalnumclients);
- fflush(stdout);
- leftfdset = *fdset;
-#ifndef WIN32
- while(memcmp(&leftfdset,&zerofdset,sizeof(fd_set)))
- {
- tmpfdset = leftfdset;
-
- if(select(FD_SETSIZE,&tmpfdset,NULL,NULL,NULL) < 0)
- {
- /*
- * ERROR SELECTING. ABORT ALL.
- */
- abort_clients();
- errexit("Error accepting from one of the clients: %s\n",
- neterrstr());
- break;
- }
-#else
- /* I don't see why a select is needed at all--all clients must respond
- * and there is no synchronization/timing issue.
- */
- tmpfdset = leftfdset;
- {
-#endif /* WIN32 */
-
- for (cnt = 0; cnt < totalnumclients; cnt++)
- {
- /*
- * SEE WHICH SOCKETS HAVE A INPUT ON THEM PENDING
- * AND RECEIVE IT.
- */
- if(!BADSOCKET(socknum[cnt]) && (FD_ISSET(socknum[cnt],&tmpfdset)))
- {
- /*
- * GET THE READY FROM THIS GUY.
- * DON'T FORGET TO CLEAR HIS BIT IN THE tmpfdset
- */
- len = NETREAD(socknum[cnt],buffer,READYSTRLEN);
- if(len != READYSTRLEN)
- {
- abort_clients();
- errexit("Error reading from client #%d\n", cnt);
- }
- if(memcmp(buffer, READYSTR, READYSTRLEN))
- {
- abort_clients();
- fprintf(stdout,"Received bad READY string: len %d, value %s\n",
- len,buffer);
- }
- FD_CLR(socknum[cnt],&leftfdset);
- }
- }
- }
- sleep(1);
- fprintf(stdout,"All READYs received\n");
- fflush(stdout);
-}
-
-/*
- Start all the clients by sending them a GO signal
- totalnumclients is the total number of clients
- socknum is an int array with the filedescriptors for all the
- client connections
-*/
-void SendGo( totalnumclients, socknum)
-int totalnumclients;
-int *socknum;
-{
- int cnt;
- fprintf(stdout,"Sending GO to all clients\n");
- for(cnt = 0; cnt < totalnumclients; cnt++)
- {
- if(socknum[cnt] > 0)
- {
- /*
- * SEND A GO
- */
- if(NETWRITE(socknum[cnt], GOSTR, GOSTRLEN) != GOSTRLEN)
- {
- abort_clients();
- errexit("Error sending GO to client %d: %s\n", cnt, neterrstr());
- }
- }
- }
-}
-
-/*
- This function gathers statistics from all the clients
-*/
-
-void GetResults(fdset, page_stats, endtime, timestr, totalnumclients,
- statarray)
-fd_set *fdset;
-page_stats_t **page_stats;
-time_t *endtime;
-char *timestr;
-int totalnumclients;
-stats_t statarray[MAXCLIENTS];
-{
- fd_set leftfdset,tmpfdset;
- char *stats_as_text;
- char *page_stats_as_text;
- int returnval;
- int cnt,i;
-
-
- /* DOESN'T ACTUALLY PRINT UNTIL THE FIRST CLIENT REPORTS */
- fprintf(stdout,"Reading results ");
-
- /*
- * COPY THE FILE DESCRIPTORS TO A TMP LIST,
- * ALLOCATE MEMORY FOR STATS, PAGESTATS IN TEXT FORM
- */
- leftfdset = *fdset;
- stats_as_text = (char *)mymalloc(SIZEOF_STATSTEXT+1);
- page_stats_as_text = (char *)mymalloc(SIZEOF_PAGESTATSTEXT+1);
-
- /*
- * COPY THE FILE DESCRIPTORS TO A TMP LIST,
- * PLUS A LIST OF REMAINING FDs
- */
- leftfdset = *fdset;
- /*
- * LOOP UNTIL ALL CLIENTS HAVE REPORTED
- * AND tmpfdset IS EMPTY
- */
-#ifndef WIN32
- while(memcmp(&leftfdset,&zerofdset,sizeof(fd_set)))
- {
- tmpfdset = leftfdset;
- sleep(1);
- returnval = select(FD_SETSIZE,&tmpfdset,NULL,NULL,NULL);
- D_PRINTF( "Call to select returned %d, errno %d\n",
- returnval, errno );
- if(returnval < 0)
- {
- /*
- * ERROR SELECTING. ABORT ALL.
- */
- D_PRINTF( "select() error %s\n", neterrstr() );
- abort_clients();
- errexit("Error selecting from one of the clients\n");
- }
-#else
- /* I don't see why a select is needed at all */
- tmpfdset = leftfdset;
- {
-#endif /* WIN32 */
- for(cnt = 0; cnt < totalnumclients; cnt++)
- {
- /*
- * SEE WHICH SOCKETS HAVE A INPUT ON THEM PENDING AND
- * RECEIVE IT.
- */
-
- /* IS THIS A VALID SOCKET? IS IT READY TO READ? */
- if(!BADSOCKET(socknum[cnt]) && (FD_ISSET(socknum[cnt],&tmpfdset)))
- {
- int len;
-
- /*
- * GET THE TIMING DATA FROM THIS GUY
- * THEN REMOVE HIM FROM THE tmpfdset
- */
- /*
- * READ TIME STATS
- * DOES READ() RETURN THE CORRECT LENGTH?
- */
- D_PRINTF( "About to read timestats, count %d, errno %d\n",
- cnt, errno );
- len = SIZEOF_STATSTEXTBASE + number_of_pages*SIZEOF_DOUBLETEXT;
- returnval = recvdata(socknum[cnt], stats_as_text,
- len);
- D_PRINTF( "Read time stats %d\n", returnval );
- if (returnval != len) /* <= 0) */
- {
- D_PRINTF( "Error reading timing stats: %s\n",
- neterrstr() );
- fprintf(stderr, "Error reading timing stats: %s\nSocket number %d\n",
- neterrstr(),socknum[cnt]);
- abort_clients();
- errexit("");
- } /* end if */
-
- /* convert text to stats */
- stats_as_text[returnval] = 0; /* add an end marker */
- statarray[cnt] = *text_to_stats(stats_as_text);
-
- fputc('.', stdout); /* PROGRESS MARKER */
- fflush(stdout);
-
- if(uil_filelist_f) /* READ PAGE STATS */
- {
- for (i = 0; i < number_of_pages; i++)
- {
- D_PRINTF( "On page_stats[%d][%d]\n", cnt, i );
- returnval = recvdata(socknum[cnt], page_stats_as_text,
- SIZEOF_PAGESTATSTEXT);
- D_PRINTF( "Read page stats %d\n", returnval );
-
- if (returnval != SIZEOF_PAGESTATSTEXT) /* <= 0) */
- {
- D_PRINTF( "Error reading page_stats[%d][%d]: %s\n",
- cnt, i, neterrstr() );
- fprintf(stderr, "Error reading page_stats[%d][%d]: %s\n",
- cnt, i, neterrstr());
- abort_clients();
- errexit("");
- }
- D_PRINTF( "Page stats: read %d bytes\n",
- returnval );
-
- page_stats_as_text[returnval] = 0; /* add an end marker */
- D_PRINTF("strlen(page_stats_as_text) = %d\n",
- strlen(page_stats_as_text));
- page_stats[cnt][i] =
- *text_to_page_stats(page_stats_as_text);
-
- } /* end for */
- } /* end if filelist */
-
- FD_CLR(socknum[cnt],&leftfdset);
- NETCLOSE(socknum[cnt]);
- socknum[cnt] = BADSOCKET_VALUE;
- } /* end if socknum */
- } /* end for cnt */
- } /* end while memcmp fd */
-
- /*
- * DONE READING RESULTS FROM CLIENTS
- */
-
- *endtime = time(NULL);
- timestr = asctime(localtime(endtime));
- fprintf(stdout,"\nAll clients ended at %s\n",timestr);
- fflush(stdout);
-
- /* FREE MEMORY ALLOCATED FOR CLIENT STATS, PAGESTATS AS TEXT */
- free(stats_as_text);
- free(page_stats_as_text);
-
-}
-
-/*
- Prints out all the results
-*/
-void PrintResults( page_stats, endtime, timestr, totalnumclients, statarray,
- page_stats_total)
-page_stats_t **page_stats;
-time_t endtime;
-char *timestr;
-int totalnumclients;
-stats_t statarray[MAXCLIENTS];
-page_stats_t *page_stats_total;
-{
- stats_t masterstat;
- int cnt,i,j;
- double thruput;
- struct timeval dtime;
-
- /*
- * PRINT EVERYTHING OUT
- */
- stats_init(&masterstat);
- for(cnt = 0; cnt < totalnumclients; cnt++)
- {
- if((statarray[cnt].rs.totalconnects > 0) && (dumpall))
- {
- fprintf(stdout,"----------------------------------\n");
- /* fprintf(stdout,"Test for host: %s\n",statarray[cnt].hostname); */
- fprintf(stdout,"Total number of pages retrieved from server: %u\n",
- statarray[cnt].totalpages);
-
- rqstat_fprint(stdout, &(statarray[cnt].rs));
-
- thruput = thruputpersec((double)(statarray[cnt].rs.totalbytes),
- &(statarray[cnt].rs.totalresponsetime));
-
- fprintf(stdout, "Thruput average per connection: %.0f bytes/sec\n",
- thruput);
- }
- if(statarray[cnt].rs.totalconnects > 0)
- {
- D_PRINTF( "Summing stats for %d, with %ld total connections\n",
- cnt, statarray[cnt].rs.totalconnects );
- rqstat_sum(&masterstat.rs, &(statarray[cnt].rs));
- }
- else
- {
- masterstat.rs.totalerrs += statarray[cnt].rs.totalerrs;
- }
- }
-
- for (i=0; i < totalnumclients; i++)
- {
- for (j=0; j < number_of_pages; j++)
- {
- D_PRINTF( "Summing page stats for %d, page %d, with %d connects\n",
- i, j, statarray[i].page_numbers[j] );
-
- if (statarray[i].page_numbers[j] != 0)
- {
- rqst_stats_t *pst_rs;
- rqst_stats_t *ps_rs;
-
- pst_rs = &(page_stats_total[j].rs);
- ps_rs = &(page_stats[i][j].rs);
-
- rqstat_sum(pst_rs, ps_rs);
-
- page_stats_total[j].totalpages += page_stats[i][j].totalpages;
- masterstat.totalpages += page_stats[i][j].totalpages;
-
- /* yes, this is assignment, not sum */
- page_stats_total[j].page_size = page_stats[i][j].page_size;
-
- page_stats_total[j].page_valid = 1;
- }
- }
- }
-
- /* print page statistics */
- if (verbose) {
- for (i = 0; i < number_of_pages; i++)
- {
- if (page_stats_total[i].page_valid == 1)
- {
- page_stats_t *pst;
-
- pst = &(page_stats_total[i]);
-
- printf ("===============================================================================\n");
- printf ("Page # %d\n\n", i);
- printf ("Total number of times page was hit %u\n",
- pst->totalpages);
-
- rqstat_print(&(pst->rs));
-
- printf ("Page size %u \n", pst->page_size);
- printf ("===============================================================================\n\n");
- }
- }
- }
-
- fprintf(stdout,"===============================================================================\n");
-
- /*
- * Validate run.
- */
- masterstat.total_num_of_files = statarray[0].total_num_of_files;
- for (i=1; i < totalnumclients; i++)
- {
- if ((statarray[i].rs.totalconnects > 0) &&
- (statarray[i].total_num_of_files != masterstat.total_num_of_files))
- {
- fprintf(stdout,"**********************************************************************\n");
- fprintf(stdout,"**** ERROR: number of files in each test configuration is not the same\n");
- fprintf(stdout,"**** ERROR: Check configuration file %s on each client\n", configfile);
- fprintf(stdout,"**********************************************************************\n");
- break;
- }
- }
-
-
- /*
- * Print summary statistics
- */
- fprintf(stdout, "WEBSTONE 2.0 results:\n");
-
- fprintf(stdout, "Total number of clients: \t%d\n", totalnumclients);
- testtime = sumedh_end.tv_sec - sumedh_start.tv_sec;
- fprintf(stdout,"Test time: \t\t\t%d seconds\n", testtime);
-
- fprintf(stdout, "Server connection rate: \t%3.2f connections/sec\n",
- (double)(masterstat.rs.totalconnects)/(testtime));
-
- fprintf(stdout, "Server error rate: \t\t%4.4f err/sec\n",
- (double)(masterstat.rs.totalerrs)/(testtime));
-
- fprintf(stdout, "Server thruput: \t\t%2.2f Mbit/sec\n",
- (double)(8*masterstat.rs.totalbytes)/(testtime*1024*1024));
-
- fprintf(stdout, "Little's Load Factor: \t\t%3.2f \n",
- (double)(masterstat.rs.totalresponsetime.tv_sec)
- /(testtime));
- avgtime(&masterstat.rs.totalresponsetime,
- masterstat.rs.totalconnects, &dtime);
-
- fprintf(stdout, "Average response time: \t\t%4.4f millisec\n",
- (double)1000*(dtime.tv_sec + (double)dtime.tv_usec / 1000000));
-
- fprintf(stdout, "Error Level:\t\t\t%4.4f %%\n",
- (double)(100 * masterstat.rs.totalerrs)/(masterstat.rs.totalconnects));
-
- /* so much for the key metrics */
-
- thruput = 8 * thruputpersec((double)(masterstat.rs.totalbytes),
- &(masterstat.rs.totalresponsetime));
-
- fprintf(stdout, "Average client thruput: \t%4.4f Mbit/sec\n",
- thruput/(1024*1024));
-
- fprintf(stdout,"Sum of client response times:\t%u.%u sec\n",
- masterstat.rs.totalresponsetime.tv_sec,
- masterstat.rs.totalresponsetime.tv_usec);
-
- fprintf(stdout,"Total number of pages read:\t%u\n\n",
- masterstat.totalpages);
-
- /* Remaining stats are the same as usual */
-
- rqstat_fprint(stdout, &(masterstat.rs));
- fflush(stdout);
-
-}
-
-#ifdef WIN32
-/* close socket library */
-void sock_cleanup(void) {
-
- WSACleanup();
-}
-#endif /* WIN32 */
-
-void
-main(const int argc, char *argv[])
-{
-
- int sync_sock;
- int i;
- int j;
- char buffer[NCCARGS];
- char commandline[NCCARGS];
- char *timestr;
- time_t starttime;
- time_t endtime;
- fd_set fdset;
- /* make the big arrays static to avoid stack overflow */
- static char clienthostname[MAXCLIENTS][MAXHOSTNAMELEN];
- static stats_t statarray[MAXCLIENTS];
- page_stats_t **page_stats;
- page_stats_t *page_stats_total;
- struct sockaddr_in serveraddr;
-
-
-#ifdef WIN32
- WSADATA WSAData;
- COORD dwSize;
-
- if ((WSAStartup(MAKEWORD(1,1), &WSAData)) != 0) {
- errexit("Error in WSAStartup()\n");
- }
- atexit(sock_cleanup);
-
- /* increase size of output window */
- dwSize.X = 80;
- dwSize.Y = 500;
- SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), dwSize);
-#endif /* WIN32 */
-
-
- /* Initalization of variables. */
- debugfile = stdout;
- memset(buffer, 0, NCCARGS);
- memset(webserver, 0, MAXHOSTNAMELEN);
- memset(configfile, 0, MAXPATHLEN);
- FD_ZERO(&zerofdset);
- FD_ZERO(&fdset);
-
- for(i = 0; i < MAXCLIENTS; i++)
- {
- socknum[i] = BADSOCKET_VALUE;
- statarray[i].rs.totalconnects = 0;
- }
-
- signal(SIGINT, sig_int);
-
- ParseCmdLine( argc, argv);
-
- sync_sock = SetupSyncSocket( &serveraddr );
-
- MakeCmdLine( commandline);
-
- totalnumclients = RexecClients( commandline, clienthostname, &serveraddr);
-
- /* Initalization of variables. */
- page_stats =
- (page_stats_t **)
- mymalloc(totalnumclients*sizeof(page_stats_t *));
- for (i=0; i < totalnumclients; i++)
- {
- page_stats[i] = (page_stats_t *)
- mymalloc(number_of_pages*sizeof(page_stats_t));
- }
- page_stats_total =
- (page_stats_t *)mymalloc(number_of_pages*sizeof(page_stats_t));
-
- for (i=0; i < totalnumclients; i++) {
- stats_init(&(statarray[i]));
- }
- for (i=0; i < totalnumclients; i++) {
- for (j=0; j < number_of_pages; j++) {
- page_stats_init(&(page_stats[i][j]));
- }
- }
- for (i=0; i < number_of_pages; i++) {
- page_stats_init(&(page_stats_total[i]));
- }
-
- for(i = 0; i < totalnumclients; i++)
- {
- socknum[i] = BADSOCKET_VALUE;
- statarray[i].rs.totalconnects = 0;
- }
-
- GetReady( &fdset, totalnumclients, sync_sock );
- NETCLOSE(sync_sock);
-
- /*
- * START ALL OF THE CLIENTS BY SENDING THEM A GO SIGNAL.
- */
-
-
- gettimeofday (&sumedh_start, NULL);
- SendGo( totalnumclients, socknum);
-
- /*
- * WAIT FOR ALL OF THE CLIENTS TO COMPLETE. WE SHOULD GET A REPLY
- * FOR EACH SOCKET WE HAVE OPEN. THE REPLY WILL BE THE TIMING
- * INFORMATION WE USE.
- */
-
- starttime = time(NULL);
- timestr = asctime(localtime(&starttime));
- fprintf(stdout,"All clients started at %s\n",timestr);
- fprintf(stdout,"Waiting for clients completion\n");
- fflush(stdout);
-
- /* IF THIS IS A TIMED TEST, WE MIGHT AS WELL SNOOZE */
- if (testtime) {
- sleep(testtime * 60);
- }
-
- GetResults( &fdset, page_stats, &endtime, timestr, totalnumclients,
- statarray);
-
- gettimeofday (&sumedh_end, NULL);
- PrintResults( page_stats, endtime, timestr, totalnumclients, statarray,
- page_stats_total);
-
- /* free memory */
- for (i = 0; i < totalnumclients; i++)
- {
- free(page_stats[i]);
- }
- free(page_stats);
- free(page_stats_total);
-
- exit(0);
-}
-
-/* Added by Rajesh Shah 5/18/96 */
-void
-HostEntCpy(struct hostent *dest, struct hostent *src)
-{
-
- dest->h_name = (char *)malloc(strlen(src->h_name)+1);
- strcpy(dest->h_name, src->h_name);
- printf("WebMaster name = %s\n", dest->h_name);
- dest->h_aliases = src->h_aliases;
- dest->h_addrtype = src->h_addrtype;
- dest->h_length = src->h_length;
- dest->h_addr_list = src->h_addr_list;
-}
-
diff --git a/apps/JAWS/clients/WebSTONE/webstone b/apps/JAWS/clients/WebSTONE/webstone
deleted file mode 100755
index 026f0d664ad..00000000000
--- a/apps/JAWS/clients/WebSTONE/webstone
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/sh
-#
-#
-WEBSTONEROOT=`pwd` ; export WEBSTONEROOT
-[ -z "$EDITOR" ] && EDITOR="vi"
-
-case $1 in
- '-gui')
- bin/webstone-gui.pl
- ;;
- '-help')
- echo
- more README.FIRST
- ;;
- '-setup')
- if (sh bin/gui-configure)
- then
- :
- else
- echo
- echo "Some problems were found."
- echo "Press RETURN to continue, or CTRL-C to abort."
- read junk
- fi
- if (cd src ; ./configure ; make install)
- then
- echo
- echo
- echo "Press RETURN to continue"
- read junk
- $EDITOR conf/testbed
- echo
- echo "WebStone make complete."
- echo "Type './webstone -genfiles' to create the fileset."
- echo
- else
- echo
- echo "WebStone make FAILED"
- echo "Consult the file doc/FAQ-webstone.html for porting hints."
- echo
- fi
- ;;
- '-kill')
- cd bin
- ./killbench
- ;;
- '-nogui')
- cd bin
- ./runbench
- ;;
- '-genfiles')
- cd bin
- ./genfiles
- echo
- echo "If no errors occurred, type './webstone' to run the benchmark."
- echo
- ;;
- '-silent')
- cd bin
- ./runbench > /dev/null 2>&1 &
- ;;
- '-tail')
- LATEST=$WEBSTONEROOT/bin/runs/`ls -1 $WEBSTONEROOT/bin/runs | tail -1`/run
- tail -f $LATEST
- ;;
- '-results')
- bin/wscollect.pl $2 bin/runs
- ;;
-
- *)
- $WEBSTONEROOT/webstone -nogui
- ;;
-esac
-
-# end
diff --git a/apps/JAWS/remora/app/Makefile b/apps/JAWS/remora/app/Makefile
deleted file mode 100755
index 1a75b69b87f..00000000000
--- a/apps/JAWS/remora/app/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-include stdmk
-
-EXE = test
-
-all: $(EXE)
-
-clean:
- -rm -f core *~ *.o *_c.hh *_c.cc *_s.hh *_s.cc $(EXE)
- -rm -rf Templates.DB
-
-remora_c.cc: remora.idl
- $(ORBCC) remora.idl
-
-remora_s.cc: remora.idl
- $(ORBCC) remora.idl
-
-test: remora_c.o Remora_Import.o Remora_Export.o test.o
- $(CC) -o test test.o remora_c.o Remora_Import.o Remora_Export.o \
- $(LIBPATH) $(LIBORB) $(STDCC_LIBS) $(LIBACE)
diff --git a/apps/JAWS/remora/app/Remora_Export.cc b/apps/JAWS/remora/app/Remora_Export.cc
deleted file mode 100644
index e416ac83156..00000000000
--- a/apps/JAWS/remora/app/Remora_Export.cc
+++ /dev/null
@@ -1,93 +0,0 @@
-// $Id$
-
-#include "Remora_Export.h"
-
-
-Remora_Export::Remora_Export(const char* label, int value, int max_value)
- : remora_agent_(0)
-{
- this->stat_.value_ = value;
- this->stat_.label_ = label;
- this->stat_.max_ = max_value;
-
- this->init();
-}
-
-Remora_Export::Remora_Export(const Remora_Export& export)
- : remora_agent_(export.remora_agent_)
-{
- this->stat_.value_ = export.stat_.value_;
- this->stat_.label_ = export.stat_.label_;
- this->stat_.max_ = export.stat_.max_;
-}
-
-Remora_Export::~Remora_Export()
-{
- PMCTRY
- {
- if (this->remora_agent_ != 0)
- {
- this->remora_agent_->removeStatistic(this->stat_.label_);
- this->remora_agent_->_release();
- }
- }
- PMCCATCH(remora::Invalid_Statistic, excp)
- {
- }
- PMCAND_CATCH(CORBA::SystemException, excp)
- {
- CORBA::release(this->remora_agent_);
- }
- PMCEND_CATCH
-
-}
-
-void
-Remora_Export::init()
-{
- PMCTRY
- {
- int argc = 1;
- char* argv[1];
- argv[0] = STATS_AGENT_NAME;
-
- CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
-
- cout << this->stat_.label_ << " Binding to server..." << endl;
- this->remora_agent_ =
- remora::Remora_Statistics_Agent::_bind(STATS_AGENT_NAME);
-
- cout << this->stat_.label_ << " Registering Statistic..." << endl;
- this->remora_agent_->acceptNewStatistic(this->stat_);
- }
- PMCCATCH(CORBA::Exception, excp)
- {
- cerr << excp << endl;
- }
- PMCEND_CATCH
-}
-
-void
-Remora_Export::update_value(int new_value)
-{
- this->stat_.value_ = new_value;
-
- PMCTRY
- {
- cout << this->stat_.label_ << " Updating a value." << endl;
- if (this->remora_agent_ != 0 && (! this->remora_agent_->_non_existent()))
- this->remora_agent_->updateStatistic(this->stat_);
- }
- PMCCATCH(CORBA::SystemException, sysex)
- {
- cerr << sysex << endl;
- this->remora_agent_->_release();
- this->remora_agent_ = 0;
- }
- PMCAND_CATCH(remora::Invalid_Statistic, excp)
- {
- cerr << excp << endl;
- }
- PMCEND_CATCH
-}
-
diff --git a/apps/JAWS/remora/app/Remora_Export.h b/apps/JAWS/remora/app/Remora_Export.h
deleted file mode 100644
index 379f3bb1a82..00000000000
--- a/apps/JAWS/remora/app/Remora_Export.h
+++ /dev/null
@@ -1,85 +0,0 @@
-// $Id
-
-// ===================================================================
-//
-// = FILENAME
-// Remora_Export.h
-//
-// = AUTHOR
-// Seth Widoff
-//
-// ===================================================================
-
-
-#ifndef REMORA_EXPORT_H
-#define REMORA_EXPORT_H
-
-#include <bstring.h>
-#include "remora_c.hh"
-
-#define MAX_VALUE 100
-#define NO_NAME "Unnamed Statistic"
-#define STATS_AGENT_NAME "Remora Statistics Agent"
-
-class Remora_Export
-{
-public:
-
- Remora_Export(const char* label = NO_NAME, int value = 0,
- int max_value = MAX_VALUE);
-
- Remora_Export(const Remora_Export& export);
-
- ~Remora_Export();
-
- void operator=(const int new_value);
- void operator=(const Remora_Export& export);
-
- void operator+=(const int new_value);
- void operator+=(const Remora_Export& export);
-
- void operator*=(const int new_value);
- void operator*=(const Remora_Export& export);
-
- void operator/=(const int new_value);
- void operator/=(const Remora_Export& export);
-
- void operator-=(const int new_value);
- void operator-=(const Remora_Export& export);
-
- operator CORBA::Long() const;
- operator CORBA::Long&();
-
- friend int operator==(const Remora_Export& me, const int new_value);
- friend int operator==(const Remora_Export& me, const Remora_Export& export);
-
- friend int operator!=(const Remora_Export& me, const int new_value);
- friend int operator!=(const Remora_Export& me, const Remora_Export& export);
-
- friend int operator<=(const Remora_Export& me, const int new_value);
- friend int operator<=(const Remora_Export& me, const Remora_Export& export);
-
- friend int operator>=(const Remora_Export& me, const int new_value);
- friend int operator>=(const Remora_Export& me, const Remora_Export& export);
-
- friend int operator<(const Remora_Export& me, const int new_value);
- friend int operator<(const Remora_Export& me, const Remora_Export& export);
-
- friend int operator>(const Remora_Export& me, const int new_value);
- friend int operator>(const Remora_Export& me, const Remora_Export& export);
-
-private:
-
- void init();
-
- void update_value(int new_value);
-
- remora::Statistic stat_;
-
- remora::Remora_Statistics_Agent_ptr remora_agent_;
-
-};
-
-#include "Remora_Export.i"
-
-#endif
diff --git a/apps/JAWS/remora/app/Remora_Export.i b/apps/JAWS/remora/app/Remora_Export.i
deleted file mode 100644
index f4b158721d2..00000000000
--- a/apps/JAWS/remora/app/Remora_Export.i
+++ /dev/null
@@ -1,146 +0,0 @@
-// $Id
-
-inline void
-Remora_Export::operator=(const int new_value)
-{
- this->update_value(new_value);
-}
-
-inline void
-Remora_Export::operator=(const Remora_Export& export)
-{
- this->update_value(export.stat_.value_);
-}
-
-inline void
-Remora_Export::operator+=(const int new_value)
-{
- this->update_value(this->stat_.value_ + new_value);
-}
-
-inline void
-Remora_Export::operator+=(const Remora_Export& export)
-{
- this->update_value(this->stat_.value_ + export.stat_.value_);
-}
-
-inline void
-Remora_Export::operator-=(const int new_value)
-{
- this->update_value(this->stat_.value_ - new_value);
-}
-
-inline void
-Remora_Export::operator-=(const Remora_Export& export)
-{
- this->update_value(this->stat_.value_ - export.stat_.value_);
-}
-
-inline void
-Remora_Export::operator*=(const int new_value)
-{
- this->update_value(this->stat_.value_ * new_value);
-}
-
-inline void
-Remora_Export::operator*=(const Remora_Export& export)
-{
- this->update_value(this->stat_.value_ * export.stat_.value_);
-}
-
-inline void
-Remora_Export::operator/=(const int new_value)
-{
- this->update_value(this->stat_.value_ / new_value);
-}
-
-inline void
-Remora_Export::operator/=(const Remora_Export& export)
-{
- this->update_value(this->stat_.value_ / export.stat_.value_);
-}
-
-inline
-Remora_Export::operator CORBA::Long() const
-{
- return this->stat_.value_;
-}
-
-inline
-Remora_Export::operator CORBA::Long&()
-{
- return this->stat_.value_;
-}
-
-inline int
-operator==(const Remora_Export& me, const int new_value)
-{
- return me.stat_.value_ == new_value;
-}
-
-inline int
-operator==(const Remora_Export& me, const Remora_Export& export)
-{
- return me.stat_.value_ == export.stat_.value_;
-}
-
-inline int
-operator!=(const Remora_Export& me, const int new_value)
-{
- return me.stat_.value_ != new_value;
-}
-
-inline int
-operator!=(const Remora_Export& me, const Remora_Export& export)
-{
- return me.stat_.value_ != export.stat_.value_;
-}
-
-inline int
-operator<=(const Remora_Export& me, const int new_value)
-{
- return me.stat_.value_ <= new_value;
-}
-
-inline int
-operator<=(const Remora_Export& me, const Remora_Export& export)
-{
- return me.stat_.value_ <= export.stat_.value_;
-}
-
-inline int
-operator>=(const Remora_Export& me, const int new_value)
-{
- return me.stat_.value_ >= new_value;
-}
-
-inline int
-operator>=(const Remora_Export& me, const Remora_Export& export)
-{
- return me.stat_.value_ >= export.stat_.value_;
-}
-
-inline int
-operator<(const Remora_Export& me, const int new_value)
-{
- return me.stat_.value_ < new_value;
-}
-
-inline int
-operator<(const Remora_Export& me, const Remora_Export& export)
-{
- return me.stat_.value_ < export.stat_.value_;
-}
-
-inline int
-operator>(const Remora_Export& me, const int new_value)
-{
- return me.stat_.value_ > new_value;
-}
-
-inline int
-operator>(const Remora_Export& me, const Remora_Export& export)
-{
- return me.stat_.value_ > export.stat_.value_;
-}
-
diff --git a/apps/JAWS/remora/app/Remora_Import.cc b/apps/JAWS/remora/app/Remora_Import.cc
deleted file mode 100644
index c97451f0566..00000000000
--- a/apps/JAWS/remora/app/Remora_Import.cc
+++ /dev/null
@@ -1,109 +0,0 @@
-// $Id$
-
-#include "Remora_Import.h"
-
-Remora_Import::Remora_Import(const char* label, int value,
- int min_value, int max_value)
- : remora_agent_(0)
-{
- this->control_.value_ = value;
- this->control_.label_ = label;
- this->control_.max_ = max_value;
- this->control_.min_ = min_value;
-
- this->init();
-}
-
-Remora_Import::Remora_Import(const Remora_Import& import)
- : remora_agent_(import.remora_agent_)
-{
- this->control_.value_ = import.control_.value_;
- this->control_.label_ = import.control_.label_;
- this->control_.max_ = import.control_.max_;
- this->control_.min_ = import.control_.min_;
-}
-
-Remora_Import::~Remora_Import()
-{
- PMCTRY
- {
- if (this->remora_agent_ != 0)
- {
- this->remora_agent_->removeControl(this->control_.label_);
- this->remora_agent_->_release();
- }
- }
- PMCCATCH(remora::Invalid_Statistic, excp)
- {
- cerr << "Tried to remove invalid statistic.";
- }
- PMCAND_CATCH(CORBA::SystemException, excp)
- {
- CORBA::release(this->remora_agent_);
- }
- PMCEND_CATCH
-}
-
-void
-Remora_Import::init()
-{
- PMCTRY
- {
- int argc = 1;
- char* argv[1];
- argv[0] = CONTROL_AGENT_NAME;
-
- CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
-
- cout << this->control_.label_ << " Binding to server..." << endl;
- this->remora_agent_ =
- remora::Remora_Controls_Agent::_bind(CONTROL_AGENT_NAME);
-
- cout << this->control_.label_ << " Registering Control..." << endl;
- this->remora_agent_->acceptNewControl(this->control_);
- }
- PMCCATCH(CORBA::Exception, excp)
- {
- cerr << excp << endl;
- }
- PMCEND_CATCH
-}
-
-CORBA::Long
-Remora_Import::grab_value(void)
-{
- PMCTRY
- {
- if (this->remora_agent_ != 0)
- {
- cout << this->control_.label_ << " Grabbing a value from the client." << endl;
- this->remora_agent_->getControlState(this->control_);
- }
-
- // C++ exception handling needs a 'finally' construct
- return this->control_.value_;
- }
- PMCCATCH(CORBA::SystemException, sysex)
- {
- cerr << sysex << endl;
- this->remora_agent_->_release();
- this->remora_agent_ = 0;
-
- return this->control_.value_;
- }
- PMCAND_CATCH(remora::Invalid_Control, excp)
- {
- PMCTRY
- {
- this->remora_agent_->acceptNewControl(this->control_);
- }
- PMCCATCH(CORBA::SystemException, sysex2)
- {
- return this->control_.value_;
- }
- PMCEND_CATCH
-
- return this->control_.value_;
- }
- PMCEND_CATCH
-}
diff --git a/apps/JAWS/remora/app/Remora_Import.h b/apps/JAWS/remora/app/Remora_Import.h
deleted file mode 100644
index 8cfecd84ac4..00000000000
--- a/apps/JAWS/remora/app/Remora_Import.h
+++ /dev/null
@@ -1,69 +0,0 @@
-// $Id
-
-// ===================================================================
-//
-// = FILENAME
-// Remora_Import.h
-//
-// = AUTHOR
-// Seth Widoff
-//
-// ===================================================================
-
-#ifndef REMORA_IMPORT_H
-#define REMORA_IMPORT_H
-
-#include <bstring.h>
-#include "remora_c.hh"
-
-#define NO_NAME "Unnamed Statistic"
-#define MAX_VALUE 100
-#define CONTROL_AGENT_NAME "Remora Controls Agent"
-
-class Remora_Import
-{
-public:
-
- Remora_Import(const char * label = NO_NAME, int value = 0,
- int min_value = 0, int max_value = MAX_VALUE);
-
- Remora_Import(const Remora_Import& import);
-
- ~Remora_Import();
-
- CORBA::Long get(void);
-
- operator CORBA::Long();
-
- friend int operator==( Remora_Import& me, int new_value);
- friend int operator==( Remora_Import& me, Remora_Import& export);
-
- friend int operator!=( Remora_Import& me, int new_value);
- friend int operator!=( Remora_Import& me, Remora_Import& export);
-
- friend int operator<=( Remora_Import& me, int new_value);
- friend int operator<=( Remora_Import& me, Remora_Import& export);
-
- friend int operator>=( Remora_Import& me, int new_value);
- friend int operator>=( Remora_Import& me, Remora_Import& export);
-
- friend int operator<( Remora_Import& me, int new_value);
- friend int operator<( Remora_Import& me, Remora_Import& export);
-
- friend int operator>( Remora_Import& me, int new_value);
- friend int operator>( Remora_Import& me, Remora_Import& export);
-
-private:
-
- void init();
-
- CORBA::Long grab_value();
-
- remora::Control control_;
-
- remora::Remora_Controls_Agent_ptr remora_agent_;
-
-};
-
-#include "Remora_Import.i"
-#endif
diff --git a/apps/JAWS/remora/app/Remora_Import.i b/apps/JAWS/remora/app/Remora_Import.i
deleted file mode 100644
index 48fc01f3ed7..00000000000
--- a/apps/JAWS/remora/app/Remora_Import.i
+++ /dev/null
@@ -1,85 +0,0 @@
-// $Id
-
-inline
-Remora_Import::operator CORBA::Long()
-{
- return this->grab_value();
-}
-
-inline CORBA::Long
-Remora_Import::get(void)
-{
- return this->grab_value();
-}
-
-inline int
-operator==( Remora_Import& me, int new_value)
-{
- return me.grab_value() == new_value;
-}
-
-inline int
-operator==( Remora_Import& me, Remora_Import& import)
-{
- return me.grab_value() == import.grab_value();
-}
-
-inline int
-operator!=( Remora_Import& me, int new_value)
-{
- return me.grab_value() != new_value;
-}
-
-inline int
-operator!=( Remora_Import& me, Remora_Import& import)
-{
- return me.grab_value() != import.grab_value();
-}
-
-inline int
-operator<=( Remora_Import& me, int new_value)
-{
- return me.grab_value() <= new_value;
-}
-
-inline int
-operator<=( Remora_Import& me, Remora_Import& import)
-{
- return me.grab_value() <= import.grab_value();
-}
-
-inline int
-operator>=( Remora_Import& me, int new_value)
-{
- return me.grab_value() >= new_value;
-}
-
-inline int
-operator>=( Remora_Import& me, Remora_Import& import)
-{
- return me.grab_value() >= import.grab_value();
-}
-
-inline int
-operator<( Remora_Import& me, int new_value)
-{
- return me.grab_value() < new_value;
-}
-
-inline int
-operator<( Remora_Import& me, Remora_Import& import)
-{
- return me.grab_value() < import.grab_value();
-}
-
-inline int
-operator>( Remora_Import& me, int new_value)
-{
- return me.grab_value() > new_value;
-}
-
-inline int
-operator>( Remora_Import& me, Remora_Import& import)
-{
- return me.grab_value() > import.grab_value();
-}
diff --git a/apps/JAWS/remora/app/remora.idl b/apps/JAWS/remora/app/remora.idl
deleted file mode 100644
index 4f6c8713099..00000000000
--- a/apps/JAWS/remora/app/remora.idl
+++ /dev/null
@@ -1,100 +0,0 @@
-// $Id
-
-// ===================================================================
-//
-// = FILENAME
-// remora.idl
-//
-// = AUTHOR
-// Seth Widoff
-//
-// ===================================================================
-
-// The IDL interface for the published Remora interfaces.
-
-module remora
-{
- struct Statistic
- {
- string label_;
- long value_;
- long max_;
- };
-
- struct Control
- {
- string label_;
- long value_;
- long min_;
- long max_;
- };
-
- typedef long Token;
- typedef sequence<Statistic> Statistics_List;
- typedef sequence<Control> Controls_List;
-
- exception Invalid_Statistic {};
- exception Invalid_Control {};
-
- interface Statistics_Update
- {
- void acceptNewStatistic(in Statistic stat) raises (Invalid_Statistic);
-
- void updateStatistic(in Statistic stat) raises (Invalid_Statistic);
-
- void removeStatistic(in string label) raises (Invalid_Statistic);
- };
-
- interface Controls_Update
- {
- void acceptNewControl(in Control control) raises (Invalid_Control);
-
- void getControlState(inout Control control) raises (Invalid_Control);
-
- void removeControl(in string label) raises (Invalid_Control);
- };
-
- // Located in an applet, the client receives and displays
- // statistics from the server.
- interface Remora_Statistics_Client : Statistics_Update
- {
- oneway void acceptManyStatistics(in Statistics_List stats, in long length);
-
- oneway void updateManyStatistics(in Statistics_List stats, in long length);
- // Update all statistics registered with the client
-
- oneway void shutdownStatistics();
- // Suggest that the client shut itself down
- };
-
- interface Remora_Controls_Client : Controls_Update
- {
- oneway void acceptManyControls(in Controls_List controls, in long length);
- // Deliver many new controls to the client.
-
- oneway void shutdownControls();
- };
-
- // Located on the server side, the Agent delivers statistics to
- // registered clients.
- interface Remora_Statistics_Agent : Statistics_Update
- {
- oneway void setFrequency(in long id, in long update_time);
- // Set the frequency at which the Agent will transmit
- // the statistics to the clients.
-
- long registerClient(in Remora_Statistics_Client client, in long update_time);
- // Register a client for periodic updates.
-
- oneway void terminateRegistration(in long client_id);
- // Unregister the client from the server.
- };
-
- interface Remora_Controls_Agent : Controls_Update
- {
- Token grabControlLock(in Remora_Controls_Client client);
-
- void releaseControlLock(in Token token);
- };
-};
-
diff --git a/apps/JAWS/remora/app/stdmk b/apps/JAWS/remora/app/stdmk
deleted file mode 100755
index c966f9ef9fc..00000000000
--- a/apps/JAWS/remora/app/stdmk
+++ /dev/null
@@ -1,40 +0,0 @@
-CC = CC
-DEBUG =
-
-DOVE = /project/waltz/seth/doc/dove
-
-ACE_DIR = /project/waltz/seth/ACE_wrappers
-
-ORBELINEDIR = /project/waltz/Orbeline2.0
-
-STL_DIR = /project/flamenco/irfan/STL/work-in-progress/Solaris-port.STL/Microsoft/STL
-
-ORBCC = $(ORBELINEDIR)/bin/orbeline -v _c -m _s -S exceptions
-
-CCINCLUDES = -I. -I$(ORBELINEDIR)/include -I$(STL_DIR) -I$(ACE_DIR)
-
-CCFLAGS = -g $(CCINCLUDES) $(DEBUG)
-
-LIBPATH = -L$(ORBELINEDIR)/lib -L$(ACE_DIR)/ace
-
-STDCC_LIBS = -lsocket -lnsl -ldl -mt
-
-LIBORB = -lorb
-
-LIBACE = -lACE
-
-.SUFFIXES: .C .o .h .hh .cc .cpp
-
-.C.o:
- $(CC) $(CCFLAGS) -c -o $@ $<
-
-.cc.o:
- $(CC) $(CCFLAGS) -c -o $@ $<
-
-.C.cpp:
- $(CC) -E $(CCFLAGS) $< > $@
-
-.cc.cpp:
- $(CC) -E $(CCFLAGS) $< > $@
-
-
diff --git a/apps/JAWS/remora/app/test.cc b/apps/JAWS/remora/app/test.cc
deleted file mode 100644
index 76158aac5a5..00000000000
--- a/apps/JAWS/remora/app/test.cc
+++ /dev/null
@@ -1,77 +0,0 @@
-// $Id
-
-#include <unistd.h>
-#include <stdlib.h>
-#include <iostream.h>
-#include "ace/Signal.h"
-#include "Remora_Export.h"
-#include "Remora_Import.h"
-
-class Shutdown : public ACE_Event_Handler
-{
-public:
- Shutdown(int& cond) : cond_(cond) {}
-
- virtual int handle_signal(int, siginfo*, ucontext*)
- {
- this->cond_ = 0;
- return 0;
- }
-
-private:
-
- int& cond_;
-};
-
-
-int
-main(int argc, char** argv)
-{
- int lcv = 1;
- ACE_Sig_Handler shutdown;
-
- shutdown.register_handler(SIGINT, new Shutdown(lcv));
-
- try
- {
- Remora_Export cpu("CPU Usage", 0, 100);
- Remora_Export thread("Thread Count", 0, 24);
- Remora_Export through("Throughput", 0, 150);
- Remora_Export energy("Energy Levels", 0, 2084);
- Remora_Export warp("Warp Drive Output", 0, 1023);
-
- Remora_Import in_threads("Threads", 1, 0, 24);
- Remora_Import in_tachyon("Tachyon Emmissions", 25, 0, 100);
- Remora_Import in_shields("Shield Integrity", 100, 0, 100);
- Remora_Import in_phasers("Phaser Power", 421, 0, 1024);
-
- while (lcv)
- {
- cpu = rand() % 100;
- thread = rand() % 24;
- energy = rand() % 2084;
- through = rand() % 150;
- warp = rand() % 1023;
-
- cout << "Statistics: " << endl;
- cout << "CPU: " << CORBA::Long(cpu) << endl;
- cout << "Thread: " << CORBA::Long(thread) << endl;
- cout << "Throughput: " << CORBA::Long(through) << endl;
- cout << "Energy: " << CORBA::Long(energy) << endl;
- cout << "Warp: " << CORBA::Long(cpu) << endl;
-
- cout << "Controls: " << endl;
- cout << "Threads: " << CORBA::Long(in_threads) << endl;
- cout << "Tachyon: " << CORBA::Long(in_tachyon) << endl;
- cout << "Shields: " << CORBA::Long(in_shields) << endl;
- cout << "Phasers: " << CORBA::Long(in_phasers) << endl;
-
- sleep(1);
- }
- }
- catch(CORBA::SystemException& e)
- {
-
- cerr << e << endl;
- }
-}
diff --git a/apps/JAWS/server/HTTP_Config.cpp b/apps/JAWS/server/HTTP_Config.cpp
deleted file mode 100644
index 62e496bbd3e..00000000000
--- a/apps/JAWS/server/HTTP_Config.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-// HTTP_Config.cpp
-// $Id$
-
-#include "ace/OS.h"
-#include "HTTP_Config.h"
-
-// static HTTP_Config_Info config_info;
-
-HTTP_Config_Info *HTTP_Config::instance_ = 0;
-
-HTTP_Config_Info *
-HTTP_Config::instance (void)
-{
- if (HTTP_Config::instance_ == 0)
- {
- HTTP_Config::instance_ = new HTTP_Config_Info;
-
- HTTP_Config::instance_->document_root (0);
- HTTP_Config::instance_->cgi_path (0);
- HTTP_Config::instance_->user_dir (0);
- HTTP_Config::instance_->dir_index (0);
- HTTP_Config::instance_->proxy_flag (0);
- }
-
- return HTTP_Config::instance_;
-}
-
-HTTP_Config_Info::HTTP_Config_Info (void)
- : document_root_ (0),
- cgi_path_ (0),
- user_dir_ (0),
- dir_index_ (0),
- proxy_flag_ (0)
-{
-}
-
-HTTP_Config_Info::~HTTP_Config_Info (void)
-{
-}
-
-const char *
-HTTP_Config_Info::document_root (void) const
-{
- return this->document_root_;
-}
-
-const char *
-HTTP_Config_Info::cgi_path (void) const
-{
- return this->cgi_path_;
-}
-
-const char *
-HTTP_Config_Info::user_dir (void) const
-{
- return this->user_dir_;
-}
-
-const char *
-HTTP_Config_Info::dir_index (void) const
-{
- return this->dir_index_;
-}
-
-int
-HTTP_Config_Info::proxy_flag (void) const
-{
- return this->proxy_flag_;
-}
-
-char *
-HTTP_Config_Info::document_root (char *dr_string)
-{
- if (dr_string)
- this->document_root_ = dr_string;
- else
- {
- this->document_root_ = ACE_OS::getenv ("JAWS_DOCUMENT_ROOT");
- if (!this->document_root_)
- this->document_root_ = ".";
- }
-
- return this->document_root_;
-}
-
-char *
-HTTP_Config_Info::cgi_path (char *cp_string)
-{
- if (cp_string)
- this->cgi_path_ = cp_string;
- else
- {
- this->cgi_path_ = ACE_OS::getenv ("JAWS_CGI_PATH");
-
- if (!this->cgi_path_)
- this->cgi_path_ = "cgi-bin";
- }
-
- return this->cgi_path_;
-}
-
-char *
-HTTP_Config_Info::user_dir (char *ud_string)
-{
- if (ud_string)
- this->user_dir_ = ud_string;
- else
- {
- this->user_dir_ = ACE_OS::getenv ("JAWS_USER_DIR");
- if (!this->user_dir_)
- this->user_dir_ = ".www";
- }
-
- return this->user_dir_;
-}
-
-char *
-HTTP_Config_Info::dir_index (char *di_string)
-{
- if (di_string)
- this->dir_index_ = di_string;
- else
- {
- this->dir_index_ = ACE_OS::getenv ("JAWS_DIR_INDEX");
- if (!this->dir_index_)
- this->dir_index_ = "index.html";
- }
-
- return this->dir_index_;
-}
-
-int
-HTTP_Config_Info::proxy_flag (int pf)
-{
- this->proxy_flag_ = pf;
- return this->proxy_flag_;
-}
diff --git a/apps/JAWS/server/HTTP_Config.h b/apps/JAWS/server/HTTP_Config.h
deleted file mode 100644
index fc8adacb0a1..00000000000
--- a/apps/JAWS/server/HTTP_Config.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// HTTP_Config.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-// = Forward declaration.
-class HTTP_Config_Info;
-
-class HTTP_Config
- // = TITLE
- // Stores server configuration information.
- // Someday, this will be hip and cool and be able to parse
- // NCSA httpd style config files like Apache does. For now,
- // I'm just going to hack in environment variable stuff.
- //
- // Designed around Singleton pattern.
-{
-public:
- static HTTP_Config_Info *instance (void);
- // Access the Singleton.
-
-private:
- static HTTP_Config_Info *instance_;
- // Store the Singleton.
-};
-
-class HTTP_Config_Info
- // = TITLE
- // This is where the information is really stored.
-{
-friend class HTTP_Config;
-public:
- HTTP_Config_Info (void);
- ~HTTP_Config_Info (void);
-
- // Accessors to the information
-
- const char *document_root (void) const;
- // Where the root of the document tree begins. This prevents
- // clients from being able to examine your entire filesystem.
-
- const char *cgi_path (void) const;
- // A search path for CGI files.
-
- const char *user_dir (void) const;
- // The directory which is appended to a home user directory, e.g.,
- // ".www-docs" or "public_html".
-
- const char *dir_index (void) const;
- // What is the default index file for a directory, e.g.,
- // "index.html".
-
- int proxy_flag (void) const;
- // Will the server support proxy requests?
-
-private:
- // = Accesors that can set the data
-
- char *document_root (char *dr_string);
- char *cgi_path (char *cp_string);
- char *user_dir (char *ud_string);
- char *dir_index (char *di_string);
-
- int proxy_flag (int pf);
-
-private:
- // = Data members
-
- char *document_root_;
- // The directory root from which documents will be fetched
-
- char *cgi_path_;
- // The directories from which to expect CGI scripts
-
- char *user_dir_;
- // Name of the sub-directory where user Web pages are
-
- char *dir_index_;
- // Name of the Web page to present in place of a directory listing
-
- int proxy_flag_;
- // Should we support proxy requests? Ignored for now.
-};
diff --git a/apps/JAWS/server/HTTP_Handler.cpp b/apps/JAWS/server/HTTP_Handler.cpp
deleted file mode 100644
index 8714105ffd4..00000000000
--- a/apps/JAWS/server/HTTP_Handler.cpp
+++ /dev/null
@@ -1,287 +0,0 @@
-// $Id$
-
-// HTTP_Service.cpp -- simple implementation of the HTTP protocol
-
-#include "ace/Message_Block.h"
-#include "ace/Filecache.h"
-
-#include "HTTP_Handler.h"
-#include "HTTP_Helpers.h"
-#include "IO.h"
-
-HTTP_Handler::HTTP_Handler (JAWS_IO &io,
- HTTP_Handler_Factory &factory)
- : factory_ (factory),
- request_data_ (0),
- handle_ (ACE_INVALID_HANDLE),
- response_ (io, request_),
- io_ (io)
-{
- this->io_.handler (this);
-}
-
-HTTP_Handler::~HTTP_Handler (void)
-{
- this->request_data_->release ();
- this->request_data_ = 0;
-}
-
-void
-HTTP_Handler::open (ACE_HANDLE handle,
- ACE_Message_Block &initial_data)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) New connection \n"));
-
- int sockbufsize = HTTP_Handler::MAX_SOCKBUFSIZE;
- int result = ACE_OS::setsockopt (handle,
- SOL_SOCKET,
- SO_RCVBUF,
- (char *) &sockbufsize,
- sizeof sockbufsize);
-
- if (result == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "SO_RCVBUF"));
-
- sockbufsize = HTTP_Handler::MAX_SOCKBUFSIZE;
-
- result = ACE_OS::setsockopt (handle,
- SOL_SOCKET,
- SO_SNDBUF,
- (char *) &sockbufsize,
- sizeof sockbufsize);
- if (result == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "SO_SNDBUF"));
-
- this->handle_ = handle;
- this->io_.handle (this->handle_);
-
- this->request_data_ = initial_data.duplicate ();
- this->read_complete (initial_data);
-}
-
-void
-HTTP_Handler::read_complete (ACE_Message_Block &message_block)
-{
- // This is actually a callback entry point. The JAWS_IO framework
- // calls into this method after some data has been read in.
-
- switch (this->request_.parse_request (message_block))
- {
- case 0:
- do
- {
- int next_read_size
- = HTTP_Handler::MAX_REQUEST_SIZE - message_block.length ();
-
- if (next_read_size == 0)
- {
- this->request_too_long ();
- return;
- }
-
- this->io_.read (message_block, next_read_size);
- }
- while (0);
- break;
-
- default:
- // this->request_.respond ();
- this->response_.process_request ();
- }
-}
-
-void
-HTTP_Handler::receive_file_complete (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) %s received successfully\n",
- request_.uri ()));
-
- char buffer[BUFSIZ];
- int buflen =
- ACE_OS::sprintf (buffer,
- "%s %d %s\r\n",
- this->request_.version (),
- HTTP_Status_Code::STATUS_OK,
- "Successful");
-
- this->io_.send_confirmation_message (buffer, buflen);
-}
-
-void
-HTTP_Handler::receive_file_error (int result)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) %s error in receiving file\n",
- request_.uri ()));
-
- char buffer[BUFSIZ];
-
- int status_code;
- switch (result)
- {
- case ACE_Filecache_Handle::ACCESS_FAILED:
- case ACE_Filecache_Handle::WRITE_FAILED:
- case ACE_Filecache_Handle::OPEN_FAILED:
- status_code = HTTP_Status_Code::STATUS_NOT_FOUND;
- break;
- case ACE_Filecache_Handle::COPY_FAILED:
- case ACE_Filecache_Handle::STAT_FAILED:
- case ACE_Filecache_Handle::MEMMAP_FAILED:
- status_code = HTTP_Status_Code::STATUS_FORBIDDEN;
- break;
- default:
- status_code = HTTP_Status_Code::STATUS_INTERNAL_SERVER_ERROR;
- break;
- }
- int buflen =
- ACE_OS::sprintf (buffer,
- "%s %d %s",
- this->request_.version (),
- status_code,
- "Failed");
-
- this->io_.send_confirmation_message (buffer, buflen);
-}
-
-void
-HTTP_Handler::confirmation_message_complete (void)
-{
- this->done ();
-}
-
-void
-HTTP_Handler::error_message_complete (void)
-{
- this->done ();
-}
-
-void
-HTTP_Handler::transmit_file_complete (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) %s transmitted successfully\n",
- request_.uri ()));
-
- this->done ();
-}
-
-void
-HTTP_Handler::transmit_file_error (int result)
-{
- ACE_DEBUG ((LM_DEBUG,
- " (%t) %s error in transmitting file\n",
- request_.uri ()));
-
- int status_code;
-
- switch (result)
- {
- case ACE_Filecache_Handle::ACCESS_FAILED:
- case ACE_Filecache_Handle::WRITE_FAILED:
- case ACE_Filecache_Handle::OPEN_FAILED:
- status_code = HTTP_Status_Code::STATUS_NOT_FOUND;
- break;
- case ACE_Filecache_Handle::COPY_FAILED:
- case ACE_Filecache_Handle::STAT_FAILED:
- case ACE_Filecache_Handle::MEMMAP_FAILED:
- status_code = HTTP_Status_Code::STATUS_FORBIDDEN;
- break;
- default:
- status_code = HTTP_Status_Code::STATUS_INTERNAL_SERVER_ERROR;
- break;
- }
-
- this->response_.error_response (status_code, "error in transmitting file");
-}
-
-void
-HTTP_Handler::read_error (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) error in reading request\n"));
- this->done ();
-}
-
-void
-HTTP_Handler::write_error (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) %s error in writing response\n",
- request_.uri ()));
-
- this->done ();
-}
-
-void
-HTTP_Handler::timeout (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) %s error in reading request\n",
- request_.uri ()));
-
- this->response_.
- error_response (HTTP_Status_Code::STATUS_INTERNAL_SERVER_ERROR,
- "error in reading request");
-}
-
-void
-HTTP_Handler::request_too_long (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) request too long\n"));
- this->response_.
- error_response (HTTP_Status_Code::STATUS_BAD_REQUEST,
- "request too long");
-}
-
-void
-HTTP_Handler::done (void)
-{
- this->factory_.destroy_http_handler (*this, this->io_);
-}
-
-HTTP_Handler_Factory::~HTTP_Handler_Factory (void)
-{
-}
-
-HTTP_Handler *
-Synch_HTTP_Handler_Factory::create_http_handler (void)
-{
- JAWS_Synch_IO *io;
- ACE_NEW_RETURN (io, JAWS_Synch_IO, 0);
- HTTP_Handler *handler;
- ACE_NEW_RETURN (handler, HTTP_Handler (*io, *this), 0);
-
- return handler;
-}
-
-void
-Synch_HTTP_Handler_Factory::destroy_http_handler (HTTP_Handler &handler,
- JAWS_IO &io)
-{
- delete &handler;
- delete &io;
-}
-
-// This only works on Win32
-#if defined (ACE_WIN32)
-void
-Asynch_HTTP_Handler_Factory::open (ACE_HANDLE handle,
- ACE_Message_Block &mb)
-{
- JAWS_Asynch_IO *io;
- ACE_NEW (io, JAWS_Asynch_IO);
- HTTP_Handler *handler;
- ACE_NEW (handler, HTTP_Handler (*io, *this));
- handler->open (handle, mb);
-}
-
-void
-Asynch_HTTP_Handler_Factory::destroy_http_handler (HTTP_Handler &handler,
- JAWS_IO &io)
-{
- delete &handler;
- delete &io;
- delete this;
-}
-
-HTTP_Handler *
-Asynch_HTTP_Handler_Factory::create_http_handler (void)
-{
- return 0;
-}
-#endif /* ACE_WIN32 */
diff --git a/apps/JAWS/server/HTTP_Handler.h b/apps/JAWS/server/HTTP_Handler.h
deleted file mode 100644
index 0865ee326ae..00000000000
--- a/apps/JAWS/server/HTTP_Handler.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// HTTP_Handler.h
-//
-// = AUTHOR
-// James Hu and Irfan Pyarali
-//
-// ============================================================================
-
-#if !defined (HTTP_HANDLER_H)
-#define HTTP_HANDLER_H
-
-// = Forward declarations
-class Message_Block;
-class HTTP_Handler_Factory;
-
-#include "ace/Asynch_IO.h"
-#include "HTTP_Request.h"
-#include "HTTP_Response.h"
-#include "IO.h"
-
-class HTTP_Handler : protected JAWS_IO_Handler
- // = TITLE
- //
- // This class is used to implement the HTTP protocol
- //
- // = DESCRIPTION
- //
- // The HTTP_Handler class is a state based implementation of the
- // HTTP protocol. Therefore, it can be used synchronously and
- // asynchronously. It uses an abstract IO class to move between
- // different HTTP protocol states. It is up to the IO class to
- // decide on synchronous or asynchronous I/O.
-{
- // Friend I/O classes. Can call protected methods.
- friend class JAWS_Synch_IO;
- friend class JAWS_Asynch_IO;
-
- // Factories
- friend class Asynch_HTTP_Handler_Factory;
- friend class Synch_HTTP_Handler_Factory;
-
-public:
- virtual void open (ACE_HANDLE handle,
- ACE_Message_Block &initial_data);
- // The handler is initialized with a connection <handle> of a new
- // client and any <initial_data> that came across. The
- // <initial_data> block will be of MAX_REQUEST_SIZE and the number
- // of bytes in <initial_data> can be found from
- // <initial_data>.length ()
-
-protected:
- HTTP_Handler (JAWS_IO &io,
- HTTP_Handler_Factory &factory);
- // The constructor is passed the factory that created <this> and the
- // IO mechanism that the handler should use.
-
- virtual ~HTTP_Handler (void);
- // Destructor
-
- virtual void timeout (void);
- // This method is called by the framework when there is a timeout.
-
- virtual void done (void);
- // This is the termination state of the handler. After successful or
- // unsuccessful completions, the handler will end up in this state
- // (method).
-
- virtual void request_too_long (void);
- // Request too long.
-
- HTTP_Handler_Factory &factory_;
- // Reference to the creating factory.
-
-protected:
- // = Completion methods inherited from <JAWS_IO_Handler>.
-
- virtual void read_complete (ACE_Message_Block &data);
- virtual void read_error (void);
- virtual void transmit_file_complete (void);
- virtual void transmit_file_error (int result);
- virtual void receive_file_complete (void);
- virtual void receive_file_error (int result);
- virtual void write_error (void);
- virtual void confirmation_message_complete (void);
- virtual void error_message_complete (void);
-
-public:
- enum
- {
- MAX_SOCKBUFSIZE = 64 * 1024,
- MAX_REQUEST_SIZE = 8192,
- METHODSIZ = 10,
- VERSIONSIZ = 10
- };
-
-private:
- ACE_Message_Block *request_data_;
- // This points to the request sent by the client
-
- ACE_HANDLE handle_;
- // I/O handle to the client
-
- HTTP_Request request_;
- HTTP_Response response_;
-
- JAWS_IO &io_;
- // IO class used by the handler
-};
-
-class HTTP_Handler_Factory
- // = TITLE
- //
- // This class is used to create new HTTP handlers
- //
- // = DESCRIPTION
- //
- // This is an abstract factory for creating new HTTP handlers.
-{
-public:
- virtual ~HTTP_Handler_Factory (void);
- // Destructor
-
- virtual HTTP_Handler *create_http_handler (void) = 0;
- // This creates a new HTTP_Handler
-
- virtual void destroy_http_handler (HTTP_Handler &handler,
- JAWS_IO &io) = 0;
- // The HTTP handler will call this method from HTTP_Handler::done to
- // tell the factory to reap up the handler as it is now done with
- // the protocol
-};
-
-class Synch_HTTP_Handler_Factory : public HTTP_Handler_Factory
- // = TITLE
- //
- // This class is used to create new HTTP handlers that will use
- // Synch IO
- //
- // = DESCRIPTION
-{
-public:
- HTTP_Handler *create_http_handler (void);
- // This creates a new HTTP_Handler
-
- void destroy_http_handler (HTTP_Handler &handler,
- JAWS_IO &io);
- // The HTTP handler will call this method from HTTP_Handler::done to
- // tell the factory to reap up the handler as it is now done with
- // the protocol
-};
-
-#if defined (ACE_WIN32)
-class Asynch_HTTP_Handler_Factory : public HTTP_Handler_Factory, public ACE_Service_Handler
- // = TITLE
- // This class is used to create new HTTP handlers that will use
- // Asynchronous IO. This only works on Win32.
- //
- // = DESCRIPTION
-{
-public:
- void destroy_http_handler (HTTP_Handler &handler,
- JAWS_IO &io);
- // The HTTP handler will call this method from HTTP_Handler::done to
- // tell the factory to reap up the handler as it is now done with
- // the protocol
-
- virtual void open (ACE_HANDLE handle,
- ACE_Message_Block &message_block);
- // <open> is called by <ACE_Asynch_Acceptor> to initialize a new
- // instance of ACE_Service_Handler that has been created after the a
- // new connection is accepted.
- //
- // This will act as a creation point for new handlers.
-
-private:
- HTTP_Handler *create_http_handler (void);
- // This method is private as users are not allowed to create new
- // handlers. New handlers can only be created by the framework when
- // new client connections arrive.
-};
-#endif /* ACE_WIN32 */
-#endif /* HTTP_HANDLER_H */
diff --git a/apps/JAWS/server/HTTP_Helpers.cpp b/apps/JAWS/server/HTTP_Helpers.cpp
deleted file mode 100644
index 8386921f98b..00000000000
--- a/apps/JAWS/server/HTTP_Helpers.cpp
+++ /dev/null
@@ -1,429 +0,0 @@
-// $Id$
-
-// HTTP_Helpers.cpp -- Helper utilities for both server and client
-
-#include "HTTP_Helpers.h"
-
-// = Static initialization.
-const char *const
-HTTP_Helper::months_[12]=
-{
- "Jan", "Feb", "Mar", "Apr", "May", "Jun",
- "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
-};
-
-char const *HTTP_Helper::alphabet_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-char * HTTP_Helper::date_string_ = 0;
-ACE_SYNCH_MUTEX HTTP_Helper::mutex_;
-
-ACE_SYNCH_MUTEX HTTP_Status_Code::lock_;
-int HTTP_Status_Code::instance_ = 0;
-const char *HTTP_Status_Code::Reason[HTTP_Status_Code::MAX_STATUS_CODE + 1];
-
-time_t
-HTTP_Helper::HTTP_mktime (const char *httpdate)
-{
- char *buf;
-
- ACE_NEW_RETURN (buf, char[ACE_OS::strlen (httpdate) + 1], (time_t) -1);
-
- // Make spaces in the date be semi-colons so we can parse robustly
- // with sscanf.
-
- const char *ptr1 = httpdate;
- char *ptr2 = buf;
-
- do
- {
- if (*ptr1 == ' ')
- *ptr2++ = ';';
- else
- *ptr2++ = *ptr1;
- }
- while (*ptr1++ != '\0');
-
- // In HTTP/1.0, there are three versions of an HTTP_date.
-
- // rfc1123-date = wkday "," SP dd month yyyy SP hh:mm:ss SP "GMT"
- // rfc850-date = weekday "," SP dd-month-yy SP hh:mm:ss SP "GMT"
- // asctime-date = wkday SP month dd SP hh:mm:ss SP yyyy
-
- const char *rfc1123_date = "%3s,;%2d;%3s;%4d;%2d:%2d:%2d;GMT";
- const char *rfc850_date = "%s,;%2d-%3s-%2d;%2d:%2d:%2d;GMT";
- const char *asctime_date = "%3s;%3s;%2d;%2d:%2d:%2d;%4d";
-
- // Should also support other versions (such as from NNTP and SMTP)
- // for robustness, but it should be clear how to extend this.
-
- struct tm tms;
- char month[4];
- char weekday[10];
-
- if (::sscanf(buf, rfc1123_date,
- weekday,
- &tms.tm_mday,
- month,
- &tms.tm_year,
- &tms.tm_hour,
- &tms.tm_min,
- &tms.tm_sec) == 7)
- ;
- else if (::sscanf(buf, rfc850_date,
- weekday,
- &tms.tm_mday, month, &tms.tm_year,
- &tms.tm_hour, &tms.tm_min, &tms.tm_sec) == 7)
- {
- weekday[3] = '\0';
- }
- else if (::sscanf(buf, asctime_date,
- weekday,
- month, &tms.tm_mday,
- &tms.tm_hour, &tms.tm_min, &tms.tm_sec,
- &tms.tm_year) == 7)
- ;
-
- delete buf;
-
- tms.tm_year = HTTP_Helper::fixyear (tms.tm_year);
- tms.tm_mon = HTTP_Helper::HTTP_month (month);
-
- if (tms.tm_mon == -1)
- return (time_t) -1;
-
- // mktime is a Standard C function.
- {
-
-#if !defined (ACE_HAS_REENTRANT_LIBC)
- ACE_MT (ACE_Guard<ACE_SYNCH_MUTEX> g (HTTP_Helper::mutex_));
-#endif /* NOT ACE_HAS_REENTRANT_LIBC */
-
- return ACE_OS::mktime (&tms);
- }
-}
-
-const char *
-HTTP_Helper::HTTP_date (void)
-{
- if (HTTP_Helper::date_string_ == 0)
- {
- ACE_MT (ACE_Guard<ACE_SYNCH_MUTEX> m (HTTP_Helper::mutex_));
-
- time_t tloc;
- struct tm tms;
-
- if (HTTP_Helper::date_string_ == 0)
- {
- // 40 bytes is all I need.
- HTTP_Helper::date_string_ = new char[40];
-
- if (ACE_OS::time (&tloc) != (time_t) -1
- && ACE_OS::gmtime_r (&tloc, &tms) != NULL)
- ACE_OS::strftime (HTTP_Helper::date_string_, 40,
- "%a, %d %b %Y %T GMT", &tms);
- else
- {
- delete [] HTTP_Helper::date_string_;
- HTTP_Helper::date_string_ = 0;
- }
- }
- }
-
- return HTTP_Helper::date_string_;
-}
-
-const char *
-HTTP_Helper::HTTP_date (char *s)
-{
- time_t tloc;
- struct tm tms;
- char * date_string = s;
-
- if (ACE_OS::time (&tloc) != (time_t) -1
- && ACE_OS::gmtime_r (&tloc, &tms) != NULL)
- ACE_OS::strftime (date_string, 40, "%a, %d %b %Y %T GMT", &tms);
- else
- date_string = 0;
-
- return date_string;
-}
-
-int
-HTTP_Helper::HTTP_month (const char *month)
-{
- for (size_t i = 0; i < 12; i++)
- if (ACE_OS::strcmp(month, HTTP_Helper::months_[i]) == 0)
- return i;
-
- return -1;
-}
-
-const char *
-HTTP_Helper::HTTP_month (int month)
-{
- if (month < 0 || month >= 12)
- return 0;
-
- return HTTP_Helper::months_[month];
-}
-
-// Fix the path if it needs fixing/is fixable.
-
-char *
-HTTP_Helper::HTTP_decode_string (char *path)
-{
- // replace the percentcodes with the actual character
- int i, j;
- char percentcode[3];
-
- for (i = j = 0; path[i] != '\0'; i++, j++)
- {
- if (path[i] == '%')
- {
- percentcode[0] = path[++i];
- percentcode[1] = path[++i];
- percentcode[2] = '\0';
- path[j] = (char) ACE_OS::strtol (percentcode, (char **) 0, 16);
- }
- else
- path[j] = path[i];
- }
-
- path[j] = path[i];
-
- return path;
-}
-
-char *
-HTTP_Helper::HTTP_decode_base64 (char *data)
-{
- char inalphabet[256], decoder[256];
-
- ACE_OS::memset (inalphabet, 0, sizeof (inalphabet));
- ACE_OS::memset (decoder, 0, sizeof (decoder));
-
- for (int i = ACE_OS::strlen (HTTP_Helper::alphabet_) - 1;
- i >= 0;
- i--)
- {
- inalphabet[(unsigned int) HTTP_Helper::alphabet_[i]] = 1;
- decoder[(unsigned int) HTTP_Helper::alphabet_[i]] = i;
- }
-
- char *indata = data;
- char *outdata = data;
-
- int bits = 0;
- int c;
- int char_count = 0;
- int errors = 0;
-
- while ((c = *indata++) != '\0')
- {
- if (c == '=')
- break;
- if (c > 255 || ! inalphabet[c])
- continue;
- bits += decoder[c];
- char_count++;
- if (char_count == 4)
- {
- *outdata++ = (bits >> 16);
- *outdata++ = ((bits >> 8) & 0xff);
- *outdata++ = (bits & 0xff);
- bits = 0;
- char_count = 0;
- }
- else
- bits <<= 6;
- }
-
- if (c == '\0')
- {
- if (char_count)
- {
- ACE_DEBUG ((LM_DEBUG,
- "base64 encoding incomplete: at least %d bits truncated\n",
- ((4 - char_count) * 6)));
- errors++;
- }
- }
- else
- {
- // c == '='
- switch (char_count)
- {
- case 1:
- ACE_DEBUG ((LM_DEBUG,
- "base64 encoding incomplete: at least 2 bits missing\n"));
- errors++;
- break;
- case 2:
- *outdata++ = (bits >> 10);
- break;
- case 3:
- *outdata++ = (bits >> 16);
- *outdata++ = ((bits >> 8) & 0xff);
- break;
- }
- }
- *outdata = '\0';
- return errors ? 0 : data;
-}
-
-char *
-HTTP_Helper::HTTP_encode_base64 (char *data)
-{
- char buf[BUFSIZ];
- int c;
- int error;
- int char_count = 0;
- int bits = 0;
- error = 0;
- char *indata = data;
- char *outdata = buf;
- const unsigned char ASCII_MAX = ~0;
-
- while ((c = *indata++) != '\0')
- {
- if (c > (int)ASCII_MAX)
- {
- ACE_DEBUG ((LM_DEBUG, "encountered char > 255 (decimal %d)\n", c));
- error++;
- break;
- }
- bits += c;
- char_count++;
-
- if (char_count == 3)
- {
- *outdata++ = HTTP_Helper::alphabet_[bits >> 18];
- *outdata++ = HTTP_Helper::alphabet_[(bits >> 12) & 0x3f];
- *outdata++ = HTTP_Helper::alphabet_[(bits >> 6) & 0x3f];
- *outdata++ = HTTP_Helper::alphabet_[bits & 0x3f];
- bits = 0;
- char_count = 0;
- }
- else
- bits <<= 8;
- }
-
- if (!error)
- {
- if (char_count != 0)
- {
- bits <<= 16 - (8 * char_count);
- *outdata++ = HTTP_Helper::alphabet_[bits >> 18];
- *outdata++ = HTTP_Helper::alphabet_[(bits >> 12) & 0x3f];
-
- if (char_count == 1)
- {
- *outdata++ = '=';
- *outdata++ = '=';
- }
- else
- {
- *outdata++ = HTTP_Helper::alphabet_[(bits >> 6) & 0x3f];
- *outdata++ = '=';
- }
- }
- *outdata = '\0';
- ACE_OS::strcpy (data, buf);
- }
-
- return (error ? 0 : data);
-}
-
-int
-HTTP_Helper::fixyear (int year)
-{
- // Fix the year 2000 problem
-
- if (year > 1000)
- year -= 1900;
- else if (year < 100)
- {
- struct tm tms;
- time_t tloc;
-
- if (ACE_OS::time (&tloc) != (time_t) -1)
- {
- ACE_OS::gmtime_r (&tloc, &tms);
-
- if (tms.tm_year % 100 == year)
- year = tms.tm_year;
-
- // The last two cases check boundary conditions, in case the
- // year just changed at the moment we checked to see if we
- // need to fix it.
- if ((year+1) % 100 == tms.tm_year % 100)
- year = tms.tm_year - 1;
-
- if (year == (tms.tm_year + 1) % 100)
- year = tms.tm_year + 1;
-
- // What to do if none of the above?
- }
- }
-
- return year;
-}
-
-const char **
-HTTP_Status_Code::instance (void)
-{
- if (HTTP_Status_Code::instance_ == 0)
- {
- ACE_Guard<ACE_SYNCH_MUTEX> g (lock_);
-
- if (HTTP_Status_Code::instance_ == 0)
- {
- for (size_t i = 0;
- i < HTTP_Status_Code::MAX_STATUS_CODE + 1;
- i++)
- {
- switch (i)
- {
- case STATUS_OK:
- HTTP_Status_Code::Reason[i] = "OK"; break;
- case STATUS_CREATED:
- HTTP_Status_Code::Reason[i] = "Created"; break;
- case STATUS_ACCEPTED:
- HTTP_Status_Code::Reason[i] = "Accepted"; break;
- case STATUS_NO_CONTENT:
- HTTP_Status_Code::Reason[i] = "No Content"; break;
- case STATUS_MOVED_PERMANENTLY:
- HTTP_Status_Code::Reason[i] = "Moved Permanently"; break;
- case STATUS_MOVED_TEMPORARILY:
- HTTP_Status_Code::Reason[i] = "Moved Temporarily"; break;
- case STATUS_NOT_MODIFIED:
- HTTP_Status_Code::Reason[i] = "Not Modified"; break;
- case STATUS_BAD_REQUEST:
- HTTP_Status_Code::Reason[i] = "Bad Request"; break;
- case STATUS_UNAUTHORIZED:
- HTTP_Status_Code::Reason[i] = "Unauthorized"; break;
- case STATUS_FORBIDDEN:
- HTTP_Status_Code::Reason[i] = "Forbidden"; break;
- case STATUS_NOT_FOUND:
- HTTP_Status_Code::Reason[i] = "Not Found"; break;
- case STATUS_INTERNAL_SERVER_ERROR:
- HTTP_Status_Code::Reason[i] = "Internal Server Error"; break;
- case STATUS_NOT_IMPLEMENTED:
- HTTP_Status_Code::Reason[i] = "Not Implemented"; break;
- case STATUS_BAD_GATEWAY:
- HTTP_Status_Code::Reason[i] = "Bad Gateway"; break;
- case STATUS_SERVICE_UNAVAILABLE:
- HTTP_Status_Code::Reason[i] = "Service Unavailable"; break;
- default:
- HTTP_Status_Code::Reason[i] = "Unknown";
- }
- }
-
- HTTP_Status_Code::instance_ = 1;
- }
-
- // GUARD released
- }
-
- return HTTP_Status_Code::Reason;
-}
diff --git a/apps/JAWS/server/HTTP_Helpers.h b/apps/JAWS/server/HTTP_Helpers.h
deleted file mode 100644
index b22533d62b0..00000000000
--- a/apps/JAWS/server/HTTP_Helpers.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// HTTP_Helpers.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#if !defined (HTTP_HELPERS_H)
-#define HTTP_HELPERS_H
-
-#include "ace/Synch.h"
-
-class HTTP_Helper
-// Static functions to enhance the lives of HTTP programmers everywhere.
-{
-public:
-
- // Convert and HTTP-date into a time_t
- static time_t HTTP_mktime (const char *httpdate);
-
- // Create today's date
- static const char *HTTP_date (void);
- static const char *HTTP_date (char *s);
-
- // Month conversions (ascii <--> numeric)
- static int HTTP_month (const char *month);
- static const char *HTTP_month (int month);
-
- static char *HTTP_decode_string (char *path);
-
- // Encode/Decode base64 stuff (weak security model)
- static char *HTTP_decode_base64 (char *data);
- static char *HTTP_encode_base64 (char *data);
-
-private:
-
- static int fixyear (int year);
-
-private:
- static const char *const months_[12];
- static char const *alphabet_;
-
- static char *date_string_;
- static ACE_SYNCH_MUTEX mutex_;
- // Use this sometimes (e.g. HTTP_date)
-};
-
-// Design around the Singleton pattern
-
-class HTTP_Status_Code
- // = TITLE
- // Go from numeric status codes to descriptive strings.
- //
- // = DESCRIPTION
- // Design around the Singleton pattern
-{
-public:
- static const char **instance (void);
- // Singleton access point.
-
- enum STATUS_CODE
- {
- STATUS_OK = 200,
- STATUS_CREATED = 201,
- STATUS_ACCEPTED = 202,
- STATUS_NO_CONTENT = 204,
- STATUS_MOVED_PERMANENTLY = 301,
- STATUS_MOVED_TEMPORARILY = 302,
- STATUS_NOT_MODIFIED = 304,
- STATUS_BAD_REQUEST = 400,
- STATUS_UNAUTHORIZED = 401,
- STATUS_FORBIDDEN = 403,
- STATUS_NOT_FOUND = 404,
- STATUS_INTERNAL_SERVER_ERROR = 500,
- STATUS_NOT_IMPLEMENTED = 501,
- STATUS_BAD_GATEWAY = 502,
- STATUS_SERVICE_UNAVAILABLE = 503,
- STATUS_INSUFFICIENT_DATA = 399
- };
-
- enum
- {
- MAX_STATUS_CODE = 599
- };
-
-private:
- // Singleton pattern is afoot here.
- static const char *Reason[MAX_STATUS_CODE + 1];
- static int instance_;
- static ACE_SYNCH_MUTEX lock_;
-};
-
-#endif /* HTTP_HELPERS_H */
-
diff --git a/apps/JAWS/server/HTTP_Request.cpp b/apps/JAWS/server/HTTP_Request.cpp
deleted file mode 100644
index 59d9b46b96e..00000000000
--- a/apps/JAWS/server/HTTP_Request.cpp
+++ /dev/null
@@ -1,658 +0,0 @@
-// $Id$
-
-#include "ace/Message_Block.h"
-#include "HTTP_Request.h"
-#include "HTTP_Helpers.h"
-#include "HTTP_Config.h"
-
-const char *const
-HTTP_Request::static_header_strings_[HTTP_Request::NUM_HEADER_STRINGS] =
-{
- "Date",
- "Pragma",
- "Authorization",
- "From",
- "If-Modified-Since",
- "Referrer",
- "User-Agent",
- "Allow",
- "Content-Encoding",
- "Content-Length",
- "Content-Type",
- "Expires",
- "Last-Modified"
-};
-
-const char *const
-HTTP_Request::static_method_strings_[HTTP_Request::NUM_METHOD_STRINGS] =
-{
- "GET",
- "HEAD",
- "POST",
- "PUT"
-};
-
-// For reasons of efficiency, this class expects buffer to be
-// null-terminated, and buflen does NOT include the \0.
-
-HTTP_Request::HTTP_Request (void)
- : got_request_line_ (0),
- method_ (0),
- uri_ (0),
- version_ (0),
- path_ (0),
- cgi_ (0),
- cgi_env_ (0),
- cgi_args_ (0),
- query_string_ (0),
- path_info_ (0),
- header_strings_ (HTTP_Request::static_header_strings_),
- method_strings_ (HTTP_Request::static_method_strings_)
-{
-
- for (size_t i = 0;
- i < HTTP_Request::NUM_HEADER_STRINGS;
- i++)
- this->headers_.recognize (this->header_strings_[i]);
-}
-
-HTTP_Request::~HTTP_Request (void)
-{
- ACE_OS::free (this->method_);
- ACE_OS::free (this->uri_);
- ACE_OS::free (this->version_);
- ACE_OS::free (this->path_);
- ACE_OS::free (this->query_string_);
- ACE_OS::free (this->path_info_);
-
- delete [] this->cgi_env_;
-}
-
-int
-HTTP_Request::parse_request (ACE_Message_Block &mb)
-{
- mb.wr_ptr ()[0] = '\0';
-
- // Note that RFC 822 does not mention the maximum length of a header
- // line. So in theory, there is no maximum length.
-
- // In Apache, they assume that each header line should not exceed
- // 8K.
-
- int result = this->headers_.complete_header_line (mb.rd_ptr ());
-
- if (result != 0)
- {
- if (!this->got_request_line ())
- {
- this->parse_request_line (mb.rd_ptr ());
- while (this->headers_.complete_header_line (mb.rd_ptr ()) > 0)
- this->headers_.parse_header_line (mb.rd_ptr ());
- }
- else if (result > 0)
- do
- this->headers_.parse_header_line (mb.rd_ptr ());
- while (this->headers_.complete_header_line (mb.rd_ptr ()) > 0);
- }
-
- mb.wr_ptr (strlen(mb.rd_ptr ()) - mb.length ());
-
- if (this->headers_.end_of_headers ()
- || (this->got_request_line () && this->version () == 0))
- return this->init (mb.rd_ptr (), mb.length ());
- else
- return 0;
-}
-
-void
-HTTP_Request::parse_request_line (char *const request_line)
-{
- char *ptr = request_line;
- char *buf = request_line;
- int offset = 1;
-
- this->status_ = HTTP_Status_Code::STATUS_OK;
-
- ptr = ACE_OS::strchr (request_line, '\n');
-
- if (ptr > request_line && ptr[-1] == '\r')
- ptr--, offset++;
-
- if (ptr == request_line)
- {
- this->status_ = HTTP_Status_Code::STATUS_BAD_REQUEST;
- return;
- }
-
- *ptr = '\0';
- ptr += offset;
-
- char *lasts; // for strtok_r
-
- // Get the request type.
- this->got_request_line_ = 1;
-
- if (this->method (ACE_OS::strtok_r (buf, " \t", &lasts))
- && this->uri (ACE_OS::strtok_r (NULL, " \t", &lasts)))
- {
- this->type (this->method ());
-
- if (this->version (ACE_OS::strtok_r (NULL, " \t", &lasts)) == 0
- && this->type () != HTTP_Request::GET)
- this->status_ = HTTP_Status_Code::STATUS_NOT_IMPLEMENTED;
-
- if (this->path (this->uri ()) == 0)
- this->status_ = HTTP_Status_Code::STATUS_NOT_FOUND;
- }
-
- ACE_DEBUG ((LM_DEBUG, " (%t) request %s %s %s parsed\n",
- (this->method () ? this->method () : "-"),
- (this->uri () ? this->uri () : "="),
- (this->version () ? this->version () : "HTTP/0.9")));
-
- ACE_OS::memmove (buf, ptr, ACE_OS::strlen (ptr)+1);
-}
-
-int
-HTTP_Request::init (char *const buffer,
- int buflen)
-{
- // Initialize these every time.
- content_length_ = -1;
-
- // Extract the data pointer.
- data_ = buffer;
- datalen_ = 0;
-
- // Set the datalen
- if (data_ != NULL)
- datalen_ = buflen;
- else
- datalen_ = 0;
-
- ACE_DEBUG ((LM_DEBUG, " (%t) init has initialized\n"));
-
- return 1;
-}
-
-const char *
-HTTP_Request::method (void) const
-{
- return this->method_;
-}
-
-const char *
-HTTP_Request::uri (void) const
-{
- return this->uri_;
-}
-
-const char *
-HTTP_Request::version (void) const
-{
- return this->version_;
-}
-
-const char *
-HTTP_Request::path (void) const
-{
- return this->path_;
-}
-
-int
-HTTP_Request::cgi (void) const
-{
- return this->cgi_;
-}
-
-const char **
-HTTP_Request::cgi_env (void) const
-{
- return (const char **)this->cgi_env_;
-}
-
-const char *
-HTTP_Request::cgi_args (void) const
-{
- return this->cgi_args_;
-}
-
-const char *
-HTTP_Request::query_string (void) const
-{
- return this->query_string_;
-}
-
-const char *
-HTTP_Request::path_info (void) const
-{
- return this->path_info_;
-}
-
-int HTTP_Request::got_request_line (void) const
-{
- return this->got_request_line_;
-}
-
-int
-HTTP_Request::type (void) const
-{
- return type_;
-}
-
-const Headers &
-HTTP_Request::headers (void) const
-{
- return this->headers_;
-}
-
-const char *
-HTTP_Request::header_strings (int index) const
-{
- const char *hs = 0;
-
- if (0 <= index && index < NUM_HEADER_STRINGS)
- hs = this->header_strings_[index];
-
- return hs;
-}
-
-const char *
-HTTP_Request::header_values (int index) const
-{
- const char *hs = 0;
- const char *hv = 0;
-
- if (0 <= index && index < NUM_HEADER_STRINGS)
- {
- hs = this->header_strings_[index];
- hv = this->headers_[hs].value ();
- }
-
- return hv;
-}
-
-char *
-HTTP_Request::data (void)
-{
- return data_;
-}
-
-int
-HTTP_Request::data_length (void)
-{
- return datalen_;
-}
-
-int
-HTTP_Request::content_length (void)
-{
- if (this->content_length_ == -1)
- {
- const char * clv = this->headers_["Content-length"].value ();
- this->content_length_ = (clv ? ACE_OS::atoi (clv) : 0);
- }
-
- return this->content_length_;
-}
-
-int
-HTTP_Request::status (void)
-{
- return this->status_;
-}
-
-const char *
-HTTP_Request::status_string (void)
-{
- return HTTP_Status_Code::instance ()[this->status_];
-}
-
-void
-HTTP_Request::dump (void)
-{
- ACE_DEBUG ((LM_DEBUG, "%s command.\n"
- "filename is %s,"
- " length of the file is %d,"
- " data string is %s,"
- " datalen is %d,"
- " status is %d, which is %s\n\n",
- this->method () ? this->method () : "EMPTY",
- this->uri () ? this->uri () : "EMPTY",
- this->content_length (),
- this->data () ? this->data () : "EMPTY",
- this->data_length (),
- this->status (),
- this->status_string ()));
-}
-
-const char *
-HTTP_Request::method (const char *method_string)
-{
- if (this->method_)
- ACE_OS::free (this->method_);
-
- if (method_string == 0)
- {
- this->status_ = HTTP_Status_Code::STATUS_BAD_REQUEST;
- this->method_ = 0;
- }
- else
- this->method_ = ACE_OS::strdup (method_string);
-
- return this->method_;
-}
-
-const char *
-HTTP_Request::uri (char *uri_string)
-{
- if (this->uri_)
- ACE_OS::free (this->uri_);
-
- if (uri_string == 0)
- {
- this->status_ = HTTP_Status_Code::STATUS_BAD_REQUEST;
- this->uri_ = 0;
- }
- else
- {
- this->uri_ = ACE_OS::strdup (uri_string);
- this->cgi (this->uri_);
- HTTP_Helper::HTTP_decode_string (this->uri_);
- }
-
- return this->uri_;
-}
-
-const char *
-HTTP_Request::version (const char *version_string)
-{
- if (this->version_)
- ACE_OS::free (this->version_);
-
- if (version_string)
- this->version_ = ACE_OS::strdup (version_string);
- else
- this->version_ = 0;
-
- return this->version_;
-}
-
-int
-HTTP_Request::type (const char *type_string)
-{
- this->type_ = HTTP_Request::NO_TYPE;
-
- if (type_string == 0)
- return this->type_;
-
- for (size_t i = 0;
- i < HTTP_Request::NUM_METHOD_STRINGS;
- i++)
-
- if (ACE_OS::strcmp (type_string, this->method_strings_[i]) == 0)
- {
- this->type_ = i;
- break;
- }
-
- if (this->type_ == HTTP_Request::NO_TYPE)
- this->status_ = HTTP_Status_Code::STATUS_NOT_IMPLEMENTED;
-
- return this->type_;
-}
-
-int
-HTTP_Request::cgi (char *uri_string)
-{
- this->cgi_ = 0;
- this->cgi_env_ = 0;
- this->cgi_args_ = 0;
-
- ACE_DEBUG ((LM_DEBUG, " (%t) HTTP_Request::cgi (%s)\n", uri_string));
-
- if (uri_string == 0 || ACE_OS::strlen (uri_string) == 0)
- return 0;
-
- // There are 2 cases where a file could be a CGI script
- //
- // (1) the file has a CGI extension.
- // (2) the file resides in a CGI bin directory.
-
- char *extra_path_info = 0;
- if (this->cgi_in_path (uri_string, extra_path_info)
- || this->cgi_in_extension (uri_string, extra_path_info))
- {
- cgi_args_and_env (extra_path_info);
-
- if (extra_path_info)
- {
- this->path_info_ = ACE_OS::strdup (extra_path_info);
- HTTP_Helper::HTTP_decode_string (this->path_info_);
- *extra_path_info = '\0';
- }
- }
-
- return this->cgi_;
-}
-
-int
-HTTP_Request::cgi_in_path (char *uri_string, char *&extra_path_info)
-{
- char *cgi_path;
-
- ACE_DEBUG ((LM_DEBUG, " (%t) HTTP_Request::cgi_in_path (%s)\n",
- uri_string));
-
- if (HTTP_Config::instance ()->cgi_path ())
- cgi_path = ACE_OS::strdup (HTTP_Config::instance ()->cgi_path ());
- else
- cgi_path = ACE_OS::strdup ("");
-
- // error checking considered helpful!
- if (cgi_path == 0)
- return 0;
-
- char *lasts;
- char *cgi_path_next = ACE_OS::strtok_r (cgi_path, ":", &lasts);
-
- if (cgi_path_next)
- do
- {
- int len = ACE_OS::strlen (cgi_path_next);
-
- // match path to cgi path
- int in_cgi_path = 0;
-
- if (*cgi_path_next == '/')
- {
- // cgi path next points to an ``absolute'' path
- extra_path_info = uri_string;
- in_cgi_path =
- (ACE_OS::strncmp (extra_path_info, cgi_path_next, len) == 0);
- }
- else
- {
- // cgi path next points to a ``relative'' path
- extra_path_info = ACE_OS::strstr (uri_string, cgi_path_next);
- in_cgi_path = (extra_path_info != 0);
- }
-
- if (in_cgi_path)
- {
- if (extra_path_info[len] == '/')
- {
- this->cgi_ = 1;
- extra_path_info += len;
-
- // move past the executable name
- do
- extra_path_info++;
- while (*extra_path_info != '/'
- && *extra_path_info != '?'
- && *extra_path_info != '\0');
-
- if (*extra_path_info == '\0')
- extra_path_info = 0;
-
- break;
- }
- }
- extra_path_info = 0;
-
- cgi_path_next = ACE_OS::strtok_r (NULL, ":", &lasts);
- }
- while (cgi_path_next);
-
- ACE_OS::free (cgi_path);
-
- return this->cgi_;
-}
-
-int
-HTTP_Request::cgi_in_extension (char *uri_string, char *&extra_path_info)
-{
- extra_path_info = ACE_OS::strstr (uri_string, ".cgi");
-
- ACE_DEBUG ((LM_DEBUG, " (%t) HTTP_Request::cgi_in_extension (%s)\n",
- uri_string));
-
- while (extra_path_info != 0)
- {
- extra_path_info += 4;
- // skip past ``.cgi''
-
- switch (*extra_path_info)
- {
- case '\0':
- extra_path_info = 0;
- break;
- case '/':
- case '?':
- break;
- default:
- extra_path_info = ACE_OS::strstr (extra_path_info, ".cgi");
- continue;
- }
- this->cgi_ = 1;
- break;
- }
-
- return this->cgi_;
-}
-
-void
-HTTP_Request::cgi_args_and_env (char *&extra_path_info)
-{
- char *cgi_question = 0;
-
- if (extra_path_info)
- cgi_question = ACE_OS::strchr (extra_path_info, '?');
-
- if (extra_path_info == cgi_question)
- extra_path_info = 0;
-
- if (cgi_question)
- {
- *cgi_question++ = '\0';
-
- if (*cgi_question != '\0')
- {
- // We need the ``original'' QUERY_STRING for the
- // environment. We will substitute '+'s for spaces in the
- // other copy.
-
- this->query_string_ = ACE_OS::strdup (cgi_question);
-
- char *ptr = cgi_question;
- int count = 0;
- do
- if (*ptr == '+')
- *ptr = ' ';
- else if (*ptr == '&' || *ptr == '=')
- count++;
- while (*++ptr);
-
- count++;
-
- if (ACE_OS::strchr (cgi_question, '='))
- {
- ACE_NEW (this->cgi_env_, char *[count+1]);
-
- int i = 0;
- ptr = cgi_question;
- do
- {
- this->cgi_env_ [i++] = ptr;
-
- while (*ptr++)
- if (*ptr == '&' || *ptr == '=')
- *ptr = '\0';
-
- HTTP_Helper::HTTP_decode_string (this->cgi_env_[i-1]);
- }
- while (i < count);
-
- this->cgi_env_[count] = 0;
- }
- else
- {
- this->cgi_args_ = cgi_question;
- HTTP_Helper::HTTP_decode_string (cgi_question);
- }
- }
- }
-}
-
-const char *
-HTTP_Request::path (const char *uri_string)
-{
- char const *file_name = uri_string;
- char buf[MAXPATHLEN + 1];
- buf[0] = '\0';
-
- if (file_name == 0) return 0;
-
- if (*file_name == '/')
- {
- file_name++;
- if (*file_name == '~')
- {
- char *ptr = buf;
-
- while (*++file_name && *file_name != '/')
- *ptr++ = *file_name;
-
- *ptr = '\0';
-
- if (ptr == buf)
- ACE_OS::strcpy (buf, ACE_OS::getenv ("HOME"));
- else
- {
-#if !defined (ACE_WIN32) && !defined (VXWORKS)
- char pw_buf[BUFSIZ];
- struct passwd pw_struct;
- if (ACE_OS::getpwnam_r (buf, &pw_struct, pw_buf, sizeof (pw_buf))
- == 0)
- return 0;
- ACE_OS::strcpy (buf, pw_struct.pw_dir);
-#endif /* NOT ACE_WIN32 AND NOT VXWORKS */
- }
-
- ACE_OS::strcat (buf, "/");
- ACE_OS::strcat (buf, HTTP_Config::instance ()->user_dir ());
- ACE_OS::strcat (buf, file_name);
- }
- else
- {
- // With a starting '/' but no '~'
- ACE_OS::strcat (buf, HTTP_Config::instance ()->document_root ());
- ACE_OS::strcat (buf, file_name - 1);
- }
- }
-
- if (*buf != '\0')
- this->path_ = ACE_OS::strdup (buf);
-
- return this->path_;
-}
diff --git a/apps/JAWS/server/HTTP_Request.h b/apps/JAWS/server/HTTP_Request.h
deleted file mode 100644
index 907926e70a4..00000000000
--- a/apps/JAWS/server/HTTP_Request.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// HTTP_Request.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#if !defined (HTTP_REQUEST_H)
-#define HTTP_REQUEST_H
-
-class ACE_Message_Block;
-
-#include "ace/OS.h"
-#include "Parse_Headers.h"
-
-class HTTP_Request
- // = TITLE
- // This parses the client request of an HTTP transaction.
- //
- // = DESCRIPTION
-{
-public:
- HTTP_Request (void);
- // Default construction.
-
- ~HTTP_Request (void);
- // Destructor.
-
- int parse_request (ACE_Message_Block &mb);
- // parse an incoming request
-
- void parse_request_line (char *const request_line);
- // the first line of a request is the request line, which is of the
- // form: METHOD URI VERSION.
-
- int init (char *const buffer,
- int buflen);
- // Initialize the request object. This will parse the buffer and
- // prepare for the accessors.
-
-public:
- // = The Accessors.
-
- const char *method (void) const;
- // HTTP request method
-
- const char *uri (void) const;
- // HTTP request uri
-
- const char *version (void) const;
- // HTTP request version
-
- const char *path (void) const;
- // The HTTP request uri translated into a server filename path
-
- int cgi (void) const;
- // TRUE of the request is a cgi request
-
- const char *cgi_args (void) const;
- // The arguments to the cgi request
-
- const char **cgi_env (void) const;
- // The environment variables passed to the CGI request
-
- const char *query_string (void) const;
- // The cgi request query string
-
- const char *path_info (void) const;
- // The cgi request path information
-
- int type (void) const;
- // The type of the HTTP request
-
- const Headers &headers (void) const;
- // The headers that were parsed from the request
-
- const char *header_strings (int index) const;
- // Header strings stored
-
- const char *header_values (int index) const;
- // Values associated with the header strings
-
- char *data (void);
- // The buffer into which request data is read
-
- int data_length (void);
- // The length of the request data
-
- int content_length (void);
- // The length of incoming content if any
-
- int status (void);
- // Current status of the incoming request
-
- const char *status_string (void);
- // A string describing the state of the incoming request
-
- void dump (void);
- // Dump the state of the request.
-
- enum
- {
- NO_TYPE = -1,
- GET = 0,
- HEAD,
- POST,
- PUT,
- NUM_METHOD_STRINGS
- };
- // Values for request type
-
- enum
- {
- DATE = 0,
- PRAGMA,
- AUTHORIZATION,
- FROM,
- IF_MODIFIED_SINCE,
- REFERRER,
- USER_AGENT,
- ALLOW,
- CONTENT_ENCODING,
- CONTENT_LENGTH,
- CONTENT_TYPE,
- EXPIRES,
- LAST_MODIFIED,
- NUM_HEADER_STRINGS
- };
- // Header strings
-
-private:
- // = Private Accessors which can set values
- const char *method (const char *method_string);
- const char *uri (char *uri_string);
- const char *version (const char *version_string);
- const char *path (const char *uri_string);
-
- int cgi (char *uri_string);
- // determine if the given URI is a CGI program.
-
- int cgi_in_path (char *uri_string, char *&extra_path_info);
- // determine if the given URI resides in a cgi-bin directory
-
- int cgi_in_extension (char *uri_string, char *&extra_path_info);
- // determine if the given URI contains a cgi extension
-
- void cgi_args_and_env (char *&extra_path_info);
- // set the arguments and environment for the cgi program
-
- int type (const char *type_string);
-
-private:
- int got_request_line (void) const;
-
-private:
- int got_request_line_;
- Headers headers_;
-
- char *method_;
- char *uri_;
- char *version_;
- char *path_;
-
- int cgi_;
- char **cgi_env_;
- char *cgi_args_;
-
- char *query_string_;
- char *path_info_;
-
- const char * const *const header_strings_;
- static const char *const static_header_strings_[NUM_HEADER_STRINGS];
-
- const char * const *const method_strings_;
- static const char *const static_method_strings_[NUM_METHOD_STRINGS];
-
- char *data_;
- int datalen_;
- int content_length_;
- char *filename_;
- int status_;
- int type_;
-};
-
-#endif /* HTTP_REQUEST_H */
diff --git a/apps/JAWS/server/HTTP_Response.cpp b/apps/JAWS/server/HTTP_Response.cpp
deleted file mode 100644
index b5f9b02fe83..00000000000
--- a/apps/JAWS/server/HTTP_Response.cpp
+++ /dev/null
@@ -1,360 +0,0 @@
-// $Id$
-
-#include "ace/Process.h"
-#include "ace/Mem_Map.h"
-
-#include "HTTP_Response.h"
-#include "HTTP_Request.h"
-#include "HTTP_Helpers.h"
-#include "HTTP_Config.h"
-#include "IO.h"
-
-static char * const EMPTY_HEADER = (char *)"";
-
-HTTP_Response::HTTP_Response (JAWS_IO &io, HTTP_Request &request)
- : io_(io), request_(request)
-{
-}
-
-HTTP_Response::HTTP_Response (HTTP_Request &request, JAWS_IO &io)
- : io_(io), request_(request)
-{
-}
-
-HTTP_Response::~HTTP_Response (void)
-{
-#if defined (ACE_JAWS_BASELINE)
- if (this->HTTP_HEADER != EMPTY_HEADER)
- delete [] this->HTTP_HEADER;
- // The [] is important. Without it, there was a huge memory leak!
-#endif /* ACE_JAWS_BASELINE */
-}
-
-void
-HTTP_Response::process_request(HTTP_Response &response)
-{
- response.process_request();
-}
-
-void
-HTTP_Response::process_request (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) processing request: %s\n",
- this->request_.status_string ()));
-
- switch (this->request_.status ())
- {
- case HTTP_Status_Code::STATUS_OK :
-
- if (this->request_.cgi ())
- {
- this->cgi_response ();
- }
- else
- {
- this->normal_response ();
- }
-
- break;
-
- default:
- this->error_response (this->request_.status (),
- this->request_.status_string ());
- }
-}
-
-void
-HTTP_Response::error_response (int status_code, const char *log_message)
-{
- ACE_DEBUG ((LM_DEBUG, "(%t) [%s %s %s] %s\n",
- this->request_.method () ? this->request_.method () : "-",
- this->request_.uri () ? this->request_.uri () : "-",
- this->request_.version() ? this->request_.version () : "-",
- log_message ? log_message : "-"));
-
- static char const error_header1[] =
- "%s %d %s\r\n"
- "Server: JAWS/1.0prebeta\r\n"
- "Content-type: text/html\r\n"
- "Content-length: %d\r\n"
- "\r\n"
- "%s"
- ;
-
- static char const error_header2[] =
- "%s %d %s\r\n"
- "Server: JAWS/1.0prebeta\r\n"
- "WWW-Authenticate: Basic realm=\"JAWS_authorization\"\r\n"
- "Content-type: text/html\r\n"
- "Content-length: %d\r\n"
- "\r\n"
- "%s"
- ;
-
- static char const error_message[] =
- "<html>\n"
- "<head><title>Server error message</title></head>\n"
- "<body>\n"
- "<h1>Error %d: %s</h1>\n"
- "The request could not be completed because:\n %s\n"
- "</body>\n"
- "</html>\n"
- ;
-
-
- char *buf;
- char buf1[4 * BUFSIZ];
- char buf2[BUFSIZ];
-
- int length;
- const char *error_header = error_header1;
-
- if (status_code == HTTP_Status_Code::STATUS_UNAUTHORIZED)
- error_header = error_header2;
-
- length =
- ACE_OS::sprintf (buf2, error_message,
- status_code, HTTP_Status_Code::instance ()[status_code],
- log_message);
-
- if (this->request_.version () == 0
- || ACE_OS::strcmp ("HTTP/0.9", this->request_.version ()) == 0)
- buf = buf2;
- else
- {
- length =
- ACE_OS::sprintf (buf1, error_header,
- this->request_.version(), status_code,
- HTTP_Status_Code::instance ()[status_code],
- length,
- buf2);
- buf = buf1;
- }
-
- this->io_.send_error_message (buf, length);
-}
-
-void
-HTTP_Response::normal_response (void)
-{
- const char *hv = 0;;
-
- ACE_DEBUG ((LM_DEBUG, " (%t) %s request for %s [%s], version %s\n",
- request_.method (), request_.uri (), request_.path (),
- (request_.version () ? request_.version () : "HTTP/0.9")));
-
- switch (this->request_.type ())
- {
- case HTTP_Request::GET :
-
- this->build_headers ();
- this->io_.transmit_file (this->request_.path (),
- this->HTTP_HEADER,
- this->HTTP_HEADER_LENGTH,
- this->HTTP_TRAILER,
- this->HTTP_TRAILER_LENGTH);
- break;
-
- case HTTP_Request::HEAD :
- this->build_headers ();
- this->io_.send_confirmation_message (this->HTTP_HEADER,
- this->HTTP_HEADER_LENGTH);
- break;
-
- case HTTP_Request::POST :
- // What to do here?
- // Standard says this is implementation dependent.
- // Examples: annotations, page updates, etc.
- // This may be a good place to stick CORBA stuff,
- // and mobile code.
- this->error_response (HTTP_Status_Code::STATUS_NOT_IMPLEMENTED,
- "Requested method is not implemented.");
- break;
-
- case HTTP_Request::PUT :
- // Only commit to this if we can authenticate it
-
- // if there is no Authentication: header on the incoming request,
- // deny it
- hv = this->request_.headers ()["Authorization"].value ();
- if (hv == 0 || *hv == '\0')
- this->error_response (HTTP_Status_Code::STATUS_UNAUTHORIZED,
- "Unauthorized to use PUT method");
- else if (ACE_OS::strncmp (hv, "Basic ", 6) != 0)
- // ``6'' is the length of the string "Basic "
- this->error_response (HTTP_Status_Code::STATUS_UNAUTHORIZED,
- "Unknown authroization method");
- else
- {
- ACE_Mem_Map mmapfile;
- const char *hvv = hv + 6;
- // Skip past the string "Basic "
- char *buf = new char [ACE_OS::strlen (hv)];
- char *auth
- = HTTP_Helper::HTTP_decode_base64 (ACE_OS::strcpy (buf, hvv));
-
- if (mmapfile.map ("jaws.auth") != -1
- && auth != 0
- && ACE_OS::strstr((const char *) mmapfile.addr (), auth) != 0)
- this->io_.receive_file (this->request_.path (),
- this->request_.data (),
- this->request_.data_length (),
- this->request_.content_length ());
- else
- this->error_response (HTTP_Status_Code::STATUS_UNAUTHORIZED,
- "Invalid authorization attempt");
- delete buf;
- }
- break;
-
- default :
- this->error_response (HTTP_Status_Code::STATUS_NOT_IMPLEMENTED,
- "Requested method is not implemented.");
- }
-}
-
-
-void
-HTTP_Response::cgi_response (void)
-{
- ACE_Process_Options cgi_options;
-
- if (this->request_.cgi_args ())
- cgi_options.command_line ("%s %s",
- this->request_.path (),
- this->request_.cgi_args ());
- else
- cgi_options.command_line ("%s", this->request_.path ());
-
- // Build environment variables
- cgi_options.setenv ("SERVER_SOFTWARE", "%s", "JAWS/1.0");
- cgi_options.setenv ("SERVER_NAME", "%s", "localhost");
- cgi_options.setenv ("GATEWAY_INTERFACE", "%s", "CGI/1.1");
-
- cgi_options.setenv ("SERVER_PROTOCOL", "%s",
- this->request_.version ()
- ? this->request_.version ()
- : "HTTP/0.9");
- cgi_options.setenv ("SERVER_PORT", "%d", 5432);
-
- cgi_options.setenv ("REQUEST_METHOD", "%s", this->request_.method ());
-
- if (this->request_.path_info ())
- {
- cgi_options.setenv ("PATH_INFO", "%s",
- this->request_.path_info ());
- cgi_options.setenv ("PATH_TRANSLATED",
- "%s/%s",
- HTTP_Config::instance ()->document_root (),
- this->request_.path_info ());
- }
-
- cgi_options.setenv ("SCRIPT_NAME",
- "%s",
- this->request_.uri ());
-
- if (this->request_.query_string ())
- cgi_options.setenv ("QUERY_STRING",
- "%s",
- this->request_.query_string ());
-
- if (this->request_.cgi_env ())
- for (size_t i = 0; this->request_.cgi_env ()[i]; i += 2)
- cgi_options.setenv (this->request_.cgi_env ()[i],
- "%s",
- this->request_.cgi_env ()[i+1]);
-
- char buf[BUFSIZ];
- char *p, *q;
- ACE_OS::strcpy (buf, "HTTP_");
- p = q = buf + ACE_OS::strlen (buf);
-
- for (size_t i = 0; i < HTTP_Request::NUM_HEADER_STRINGS; i++)
- {
- int j = 0;
-
- for (char c; (c = this->request_.header_strings (i)[j++]) != '\0'; )
- if (isalpha (c))
- *q++ = toupper (c);
- else if (c == '-')
- *q++ = '_';
- else
- *q++ = c;
-
- *q = '\0';
-
- const char *hv = this->request_.header_values (i);
-
- if (hv && *hv)
- cgi_options.setenv (buf, "%s", hv);
- q = p;
- }
-
- cgi_options.set_handles (this->io_.handle (),
- this->io_.handle (),
- this->io_.handle ());
-
- this->build_headers ();
- this->io_.send_confirmation_message (this->HTTP_HEADER,
- this->HTTP_HEADER_LENGTH);
- // ACE::send (this->io_.handle (),
- // this->HTTP_HEADER, this->HTTP_HEADER_LENGTH);
-
- // Exec the CGI program.
- ACE_Process cgi_process;
- cgi_process.spawn (cgi_options);
- // cgi_process.wait ();
-}
-
-void
-HTTP_Response::build_headers (void)
-{
- // At this point, we should really determine the type of request
- // this is, and build the appropriate header.
-
- // Let's assume this is HTML for now. Unless the request is CGI,
- // then do not include content-* headers.
-
- if (this->request_.version () == 0
- || ACE_OS::strcmp ("HTTP/0.9", this->request_.version ()) == 0)
- {
- HTTP_HEADER = (char *) EMPTY_HEADER;
- HTTP_HEADER_LENGTH = 0;
- }
- else
- {
-#if defined (ACE_JAWS_BASELINE)
- HTTP_HEADER = new char[BUFSIZ * 4];
-
- // We assume that at this point everything is OK
- HTTP_HEADER_LENGTH =
- ACE_OS::sprintf (HTTP_HEADER, "%s", "HTTP/1.0 200 OK\r\n");
-
- char date_ptr [40];
- // 40 bytes is the maximum length needed to store the date
-
- if (HTTP_Helper::HTTP_date (date_ptr) != 0)
- HTTP_HEADER_LENGTH +=
- ACE_OS::sprintf (HTTP_HEADER+HTTP_HEADER_LENGTH,
- "Date: %s\r\n", date_ptr);
-
- if (! this->request_.cgi ())
- HTTP_HEADER_LENGTH +=
- ACE_OS::sprintf (HTTP_HEADER+HTTP_HEADER_LENGTH,
- "Content-type: %s\r\n\r\n",
- "text/html");
-#else
- if (! this->request_.cgi ())
- HTTP_HEADER = "HTTP/1.0 200 OK\r\n"
- "Content-type: text/html\r\n\r\n";
- else
- HTTP_HEADER = "HTTP/1.0 200 OK\r\n";
-
- HTTP_HEADER_LENGTH = ACE_OS::strlen (HTTP_HEADER);
-
-#endif /* ACE_JAWS_BASELINE */
- }
-
- HTTP_TRAILER = "";
- HTTP_TRAILER_LENGTH = 0;
-}
diff --git a/apps/JAWS/server/HTTP_Response.h b/apps/JAWS/server/HTTP_Response.h
deleted file mode 100644
index 0ddbf7268d1..00000000000
--- a/apps/JAWS/server/HTTP_Response.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// HTTP_Response.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#if !defined (HTTP_RESPONSE_H)
-#define HTTP_RESPONSE_H
-
-class JAWS_IO;
-class HTTP_Request;
-
-class HTTP_Response
- // = TITLE
- // Abstraction for HTTP responses.
- //
- // = DESCRIPTION
- // Provides an encapsulation of responses to HTTP requests.
- // For instance, given an HTTP GET request, it will produce
- // header and body suitable for returning to the client who made
- // the request.
-{
-public:
- HTTP_Response (JAWS_IO &io,
- HTTP_Request &request);
- HTTP_Response (HTTP_Request &request, JAWS_IO &io);
- ~HTTP_Response (void);
-
- void process_request (void);
- // This is called by the handler to initiate a response.
-
- void error_response (int status,
- const char *log_message);
- // This returns an error response for cases where there is a problem
- // with the request, logging the log_message.
-
-private:
-
- void normal_response (void);
- // Called by process_request when the request is a normal request.
-
- void cgi_response (void);
- // Called by process_request when the request is a cgi request.
-
-private:
-
- static void process_request (HTTP_Response &response);
- // static version of process_request, just in case.
-
- void build_headers (void);
- // creates the appropriate header information for responses.
-
-private:
- JAWS_IO &io_;
- HTTP_Request &request_;
- // The IO and Request objects associated with this re
-
- char *HTTP_HEADER;
- char *HTTP_TRAILER;
- int HTTP_HEADER_LENGTH;
- int HTTP_TRAILER_LENGTH;
- // HTTP Headers and trailers.
-};
-
-#endif /* HTTP_RESPONSE_H */
diff --git a/apps/JAWS/server/HTTP_Server.cpp b/apps/JAWS/server/HTTP_Server.cpp
deleted file mode 100644
index 50a2f9936b0..00000000000
--- a/apps/JAWS/server/HTTP_Server.cpp
+++ /dev/null
@@ -1,392 +0,0 @@
-// $Id$
-
-#include "ace/Get_Opt.h"
-#include "ace/Asynch_Acceptor.h"
-#include "ace/LOCK_SOCK_Acceptor.h"
-#include "ace/Proactor.h"
-
-#include "IO.h"
-#include "HTTP_Server.h"
-
-// class is overkill
-class JAWS
-{
-public:
- enum
- {
- POOL = 0,
- PER_REQUEST = 1
- };
-
- enum
- {
- SYNCH = 0,
- ASYNCH = 2
- };
-};
-
-void
-HTTP_Server::parse_args (int argc,
- char *argv[])
-{
- int c;
- int thr_strategy = 0;
- int io_strategy = 0;
- const char *prog = argc > 0 ? argv[0] : "HTTP_Server";
-
- // Set some defaults
- this->port_ = 0;
- this->threads_ = 0;
- this->backlog_ = 0;
- this->throttle_ = 0;
-
- ACE_Get_Opt get_opt (argc, argv, "p:n:t:i:b:");
-
- while ((c = get_opt ()) != -1)
- switch (c)
- {
- case 'p':
- this->port_ = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'n':
- this->threads_ = ACE_OS::atoi (get_opt.optarg);
- break;
- case 't':
- // POOL -> thread pool
- // PER_REQUEST -> thread per request
- // THROTTLE -> thread per request with throttling
- if (ACE_OS::strcmp (get_opt.optarg, "POOL") == 0)
- thr_strategy = JAWS::POOL;
- else if (ACE_OS::strcmp (get_opt.optarg, "PER_REQUEST") == 0)
- {
- thr_strategy = JAWS::PER_REQUEST;
- this->throttle_ = 0;
- }
- else if (ACE_OS::strcmp (get_opt.optarg, "THROTTLE") == 0)
- {
- thr_strategy = JAWS::PER_REQUEST;
- this->throttle_ = 1;
- }
- break;
- case 'f':
- if (ACE_OS::strcmp (get_opt.optarg, "THR_BOUND") == 0)
- {
- // What happened here?
- }
- else if (ACE_OS::strcmp (get_opt.optarg, "THR_DAEMON") == 0)
- {
- }
- else if (ACE_OS::strcmp (get_opt.optarg, "THR_DETACHED") == 0)
- {
- }
- case 'i':
- // SYNCH -> synchronous I/O
- // ASYNCH -> asynchronous I/O
- if (ACE_OS::strcmp (get_opt.optarg, "SYNCH") == 0)
- io_strategy = JAWS::SYNCH;
- else if (ACE_OS::strcmp (get_opt.optarg, "ASYNCH") == 0)
- io_strategy = JAWS::ASYNCH;
- break;
- case 'b':
- this->backlog_ = ACE_OS::atoi (get_opt.optarg);
- break;
- default:
- break;
- }
-
- // No magic numbers.
- if (this->port_ <= 0)
- this->port_ = 5432;
- if (this->threads_ <= 0)
- this->threads_ = 5;
- // Don't use number of threads as default
- if (this->backlog_ <= 0)
- this->backlog_ = this->threads_;
-
- this->strategy_ = thr_strategy | io_strategy;
-
- ACE_UNUSED_ARG (prog);
- ACE_DEBUG ((LM_DEBUG,
- "in HTTP_Server::init, %s port = %d, number of threads = %d\n",
- prog, this->port_, this->threads_));
-}
-
-int
-HTTP_Server::init (int argc, char *argv[])
- // Document this function
-{
- // Ignore signals generated when a connection is broken unexpectedly.
- ACE_Sig_Action sig (ACE_SignalHandler (SIG_IGN), SIGPIPE);
- ACE_UNUSED_ARG (sig);
-
- // Parse arguments which sets the initial state.
- this->parse_args (argc, argv);
-
- // Choose what concurrency strategy to run.
- switch (this->strategy_)
- {
- case (JAWS::POOL | JAWS::ASYNCH) :
- return this->asynch_thread_pool ();
-
- case (JAWS::PER_REQUEST | JAWS::SYNCH) :
- return this->thread_per_request ();
-
- case (JAWS::POOL | JAWS::SYNCH) :
- default:
- return this->synch_thread_pool ();
- }
-
- ACE_NOTREACHED (return 0);
-}
-
-int
-HTTP_Server::fini (void)
-{
- this->tm_.close ();
- return 0;
-}
-
-
-int
-HTTP_Server::synch_thread_pool (void)
-{
- // Main thread opens the acceptor
- if (this->acceptor_.open (ACE_INET_Addr (this->port_), 1,
- PF_INET, this->backlog_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Acceptor::open"), -1);
-
- // Create a pool of threads to handle incoming connections.
- Synch_Thread_Pool_Task t (this->acceptor_, this->tm_, this->threads_);
-
- this->tm_.wait ();
- return 0;
-}
-
-Synch_Thread_Pool_Task::Synch_Thread_Pool_Task (HTTP_Acceptor &acceptor,
- ACE_Thread_Manager &tm,
- int threads)
- : ACE_Task<ACE_NULL_SYNCH> (&tm),
- acceptor_ (acceptor)
-{
- if (this->activate (THR_DETACHED | THR_NEW_LWP, threads) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "Synch_Thread_Pool_Task::open"));
-}
-
-int
-Synch_Thread_Pool_Task::svc (void)
-{
- // Creates a factory of HTTP_Handlers binding to synchronous I/O strategy
- Synch_HTTP_Handler_Factory factory;
-
- for (;;)
- {
- ACE_SOCK_Stream stream;
-
- // Lock in this accept. When it returns, we have a connection.
- if (this->acceptor_.accept (stream) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Acceptor::accept"), -1);
-
- ACE_Message_Block *mb;
- ACE_NEW_RETURN (mb,
- ACE_Message_Block (HTTP_Handler::MAX_REQUEST_SIZE + 1),
- -1);
-
- // Create an HTTP Handler to handle this request
- HTTP_Handler *handler = factory.create_http_handler ();
- handler->open (stream.get_handle (), *mb);
- // Handler is destroyed when the I/O puts the Handler into the
- // done state.
-
- mb->release ();
- ACE_DEBUG ((LM_DEBUG,
- " (%t) in Synch_Thread_Pool_Task::svc, recycling\n"));
- }
-
- ACE_NOTREACHED(return 0);
-}
-
-int
-HTTP_Server::thread_per_request (void)
-{
- int grp_id = -1;
-
- // thread per request
- // Main thread opens the acceptor
- if (this->acceptor_.open (ACE_INET_Addr (this->port_), 1,
- PF_INET, this->backlog_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Acceptor::open"), -1);
-
- ACE_SOCK_Stream stream;
-
- // When we are throttling, this is the amount of time to wait before
- // checking for runnability again.
- const ACE_Time_Value wait_time (0, 10);
-
- for (;;)
- {
- if (this->acceptor_.accept (stream) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Acceptor::accept"), -1);
-
- Thread_Per_Request_Task *t;
- // Pass grp_id as a constructor param instead of into open.
- ACE_NEW_RETURN (t, Thread_Per_Request_Task (stream.get_handle (),
- this->tm_,
- grp_id),
- -1);
-
-
- if (t->open () != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n", "Thread_Per_Request_Task::open"),
- -1);
-
- // Throttling is not allowing too many threads to run away.
- // Should really use some sort of condition variable here.
- if (!this->throttle_)
- continue;
-
- // This works because each task has only one thread.
- while (this->tm_.num_tasks_in_group (grp_id) > this->threads_)
- this->tm_.wait (&wait_time);
- }
-
- ACE_NOTREACHED(return 0);
-}
-
-Thread_Per_Request_Task::Thread_Per_Request_Task (ACE_HANDLE handle,
- ACE_Thread_Manager &tm,
- int &grp_id)
- : ACE_Task<ACE_NULL_SYNCH> (&tm),
- handle_ (handle),
- grp_id_ (grp_id)
-{
-}
-
-
-// HEY! Add a method to the thread_manager to return total number of
-// threads managed in all the tasks.
-
-int
-Thread_Per_Request_Task::open (void *)
-{
- int status = -1;
-
- if (this->grp_id_ == -1)
- status = this->grp_id_ = this->activate (THR_DETACHED | THR_NEW_LWP);
- else
- status = this->activate (THR_DETACHED | THR_NEW_LWP,
- 1, 0, -1, this->grp_id_, 0);
-
- if (status == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "Thread_Per_Request_Task::open"),
- -1);
- return 0;
-}
-
-int
-Thread_Per_Request_Task::svc (void)
-{
- ACE_Message_Block *mb;
- ACE_NEW_RETURN (mb, ACE_Message_Block (HTTP_Handler::MAX_REQUEST_SIZE + 1),
- -1);
- Synch_HTTP_Handler_Factory factory;
- HTTP_Handler *handler = factory.create_http_handler ();
- handler->open (this->handle_, *mb);
- mb->release ();
- return 0;
-}
-
-int
-Thread_Per_Request_Task::close (u_long)
-{
- ACE_DEBUG ((LM_DEBUG,
- " (%t) Thread_Per_Request_Task::svc, dying\n"));
- delete this;
- return 0;
-}
-
-// Understanding the code below requires understanding of the
-// WindowsNT asynchronous completion notification mechanism and the
-// Proactor Pattern.
-
-// (1) The application submits an asynchronous I/O request to the
-// operating system and a special handle with it (Asynchronous
-// Completion Token).
-// (2) The operating system commits to performing the I/O request,
-// while application does its own thing.
-// (3) Operating system finishes the I/O request and places ACT onto
-// the I/O Completion Port, which is a queue of finished
-// asynchronous requests.
-// (4) The application eventually checks to see if the I/O request
-// is done by checking the I/O Completion Port, and retrieves the
-// ACT.
-
-int
-HTTP_Server::asynch_thread_pool (void)
-{
-// This only works on Win32
-#if defined (ACE_WIN32)
- // Create the appropriate acceptor for this concurrency strategy and
- // an appropriate handler for this I/O strategy
- ACE_Asynch_Acceptor<Asynch_HTTP_Handler_Factory> acceptor;
-
- // Tell the acceptor to listen on this->port_, which makes an
- // asynchronous I/O request to the OS.
- if (acceptor.open (ACE_INET_Addr (this->port_),
- HTTP_Handler::MAX_REQUEST_SIZE + 1) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
- "ACE_Asynch_Acceptor::open"), -1);
-
- // Create the thread pool.
- // Register threads with the proactor and thread manager.
- Asynch_Thread_Pool_Task t (*ACE_Proactor::instance (),
- this->tm_);
-
- // The proactor threads are waiting on the I/O Completion Port.
-
- // Wait for the threads to finish.
- return this->tm_.wait ();
-#endif /* ACE_WIN32 */
- return -1;
-}
-
-// This only works on Win32
-#if defined (ACE_WIN32)
-
-Asynch_Thread_Pool_Task::Asynch_Thread_Pool_Task (ACE_Proactor &proactor,
- ACE_Thread_Manager &tm)
- : ACE_Task<ACE_NULL_SYNCH> (&tm),
- proactor_ (proactor)
-{
- if (this->activate () == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "Asynch_Thread_Pool_Task::open"));
-}
-
-int
-Asynch_Thread_Pool_Task::svc (void)
-{
- for (;;)
- if (this->proactor_.handle_events () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Proactor::handle_events"),
- -1);
-
- return 0;
-}
-
-#endif /* ACE_WIN32 */
-
-// Define the factory function.
-ACE_SVC_FACTORY_DEFINE (HTTP_Server)
-
-// Define the object that describes the service.
-ACE_STATIC_SVC_DEFINE (HTTP_Server, "HTTP_Server", ACE_SVC_OBJ_T,
- &ACE_SVC_NAME (HTTP_Server),
- ACE_Service_Type::DELETE_THIS
- | ACE_Service_Type::DELETE_OBJ, 0)
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
diff --git a/apps/JAWS/server/HTTP_Server.h b/apps/JAWS/server/HTTP_Server.h
deleted file mode 100644
index d682ffbc88f..00000000000
--- a/apps/JAWS/server/HTTP_Server.h
+++ /dev/null
@@ -1,136 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// HTTP_Server.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#if !defined (HTTP_SERVER_H)
-#define HTTP_SERVER_H
-
-#include "ace/Service_Object.h"
-#include "ace/Thread_Manager.h"
-#include "ace/Acceptor.h"
-#include "ace/LOCK_SOCK_Acceptor.h"
-#include "ace/Task_T.h"
-#include "ace/Asynch_IO.h"
-#include "HTTP_Handler.h"
-
-// Forward declaration.
-class ACE_Proactor;
-
-#if defined (ACE_HAS_THREAD_SAFE_ACCEPT)
-typedef ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_NULL_MUTEX> HTTP_SOCK_Acceptor;
-#else
-typedef ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX> HTTP_SOCK_Acceptor;
-#endif /* ACE_HAS_THREAD_SAFE_ACCEPT */
-
-typedef HTTP_SOCK_Acceptor HTTP_Acceptor;
-
-class HTTP_Server : public ACE_Service_Object
- // = TITLE
- // This server is used to create HTTP Handlers for the Web
- // server
- //
- // = DESCRIPTION
-{
-public:
- virtual int init (int argc, char *argv[]);
- // Initialization
-
- virtual int fini (void);
- // Exit hooks
-
-protected:
- virtual int thread_per_request (void);
- // Thread Per Request implementation
-
- virtual int asynch_thread_pool (void);
- // Asynch Thread Pool implementation
-
- virtual int synch_thread_pool (void);
- // Synch Thread Pool implementation
-
-private:
- // James, comment these data members.
- void parse_args (int argc, char **argv);
- int port_;
- int threads_;
- int strategy_;
- int backlog_;
- int throttle_;
- ACE_Thread_Manager tm_;
- HTTP_Acceptor acceptor_;
-};
-
-class Synch_Thread_Pool_Task : public ACE_Task<ACE_NULL_SYNCH>
- // = TITLE
- // Used to implement Synch Thread Pool
- //
- // = DESCRIPTION
- // Describe this and the others below.
-{
-public:
- Synch_Thread_Pool_Task (HTTP_Acceptor &acceptor,
- ACE_Thread_Manager &tm,
- int threads);
- virtual int svc (void);
-
-private:
- HTTP_Acceptor &acceptor_;
-};
-
-class Thread_Per_Request_Task : public ACE_Task<ACE_NULL_SYNCH>
- // = TITLE
- // Used to implement Thread Per Request.
- //
- // = DESCRIPTION
- // Spawns a new thread for every new incoming connection. The
- // handle below is the socket stream of the incoming connection.
-{
-public:
- Thread_Per_Request_Task (ACE_HANDLE handle,
- ACE_Thread_Manager &tm,
- int &grp_id);
- virtual int open (void *args = 0);
- virtual int close (u_long);
- virtual int svc (void);
-
-private:
- ACE_HANDLE handle_;
- int &grp_id_;
-};
-
-// This only works on Win32
-#if defined (ACE_WIN32)
-class Asynch_Thread_Pool_Task : public ACE_Task<ACE_NULL_SYNCH>
- // = TITLE
- // Used to implement Asynch Thread Pool
- //
- // = DESCRIPTION
- // The proactor below utilizes WaitForMultipleObjects.
-{
-public:
- Asynch_Thread_Pool_Task (ACE_Proactor &proactor,
- ACE_Thread_Manager &tm);
- virtual int svc (void);
-
-private:
- ACE_Proactor &proactor_;
-};
-#endif /* ACE_WIN32 */
-
-ACE_STATIC_SVC_DECLARE (HTTP_Server)
-
-#endif /* HTTP_SERVER_H */
-
-
diff --git a/apps/JAWS/server/IO.cpp b/apps/JAWS/server/IO.cpp
deleted file mode 100644
index c746b5507fb..00000000000
--- a/apps/JAWS/server/IO.cpp
+++ /dev/null
@@ -1,411 +0,0 @@
-// $Id$
-
-#include "IO.h"
-#include "HTTP_Helpers.h"
-#include "ace/Message_Block.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Filecache.h"
-
-JAWS_IO::JAWS_IO (void)
- : handle_ (ACE_INVALID_HANDLE),
- handler_ (0)
-{
-}
-
-JAWS_IO::~JAWS_IO (void)
-{
-}
-
-ACE_HANDLE
-JAWS_IO::handle (void)
-{
- return this->handle_;
-}
-
-void
-JAWS_IO::handle (ACE_HANDLE handle)
-{
- this->handle_ = handle;
-}
-
-void
-JAWS_IO::handler (JAWS_IO_Handler *handler)
-{
- this->handler_ = handler;
-}
-
-JAWS_Synch_IO::JAWS_Synch_IO (void)
-{
-}
-
-JAWS_Synch_IO::~JAWS_Synch_IO (void)
-{
- ACE_OS::closesocket (this->handle_);
-}
-
-void
-JAWS_Synch_IO::read (ACE_Message_Block &mb,
- int size)
-{
- ACE_SOCK_Stream stream;
- stream.set_handle (this->handle_);
- int result = stream.recv (mb.wr_ptr (), size);
-
- if (result <= 0)
- this->handler_->read_error ();
- else
- {
- mb.wr_ptr (result);
- this->handler_->read_complete (mb);
- }
-}
-
-void
-JAWS_Synch_IO::receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length)
-{
- ACE_Filecache_Handle handle (filename, entire_length);
-
- int result = handle.error ();
-
- if (result == ACE_Filecache_Handle::SUCCESS)
- {
- ACE_SOCK_Stream stream;
- stream.set_handle (this->handle_);
-
- int bytes_to_memcpy = ACE_MIN (entire_length, initial_data_length);
- ACE_OS::memcpy (handle.address (), initial_data, bytes_to_memcpy);
-
- int bytes_to_read = entire_length - bytes_to_memcpy;
-
- int bytes = stream.recv_n ((char *) handle.address () + initial_data_length,
- bytes_to_read);
- if (bytes == bytes_to_read)
- this->handler_->receive_file_complete ();
- else
- result = -1;
- }
-
- if (result != ACE_Filecache_Handle::SUCCESS)
- this->handler_->receive_file_error (result);
-}
-
-void
-JAWS_Synch_IO::transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size)
-{
- ACE_Filecache_Handle handle (filename);
-
- int result = handle.error ();
-
- if (result == ACE_Filecache_Handle::SUCCESS)
- {
-#if defined (ACE_JAWS_BASELINE)
- ACE_SOCK_Stream stream;
- stream.set_handle (this->handle_);
-
- if ((stream.send_n (header, header_size) == header_size)
- && ((u_long) stream.send_n (handle.address (), handle.size ())
- == handle.size ())
- && (stream.send_n (trailer, trailer_size) == trailer_size))
- this->handler_->transmit_file_complete ();
- else
- result = -1;
-#else
- // Attempting to use writev
- // Is this faster?
- struct iovec iov[3];
- int iovcnt = 0;
- if (header_size > 0)
- {
- iov[iovcnt].iov_base = (char *) header;
- iov[iovcnt].iov_len = header_size;
- iovcnt++;
- }
- if (handle.size () > 0)
- {
- iov[iovcnt].iov_base = (char *) handle.address ();
- iov[iovcnt].iov_len = handle.size ();
- iovcnt++;
- }
- if (trailer_size > 0)
- {
- iov[iovcnt].iov_base = (char *) trailer;
- iov[iovcnt].iov_len = trailer_size;
- iovcnt++;
- }
- if (ACE_OS::writev (this->handle_, iov, iovcnt) < 0)
- result = -1;
- else
- this->handler_->transmit_file_complete ();
-#endif /* ACE_JAWS_BASELINE */
- }
-
- if (result != ACE_Filecache_Handle::SUCCESS)
- this->handler_->transmit_file_error (result);
-}
-
-void
-JAWS_Synch_IO::send_confirmation_message (const char *buffer,
- int length)
-{
- this->send_message (buffer, length);
- this->handler_->confirmation_message_complete ();
-}
-
-void
-JAWS_Synch_IO::send_error_message (const char *buffer,
- int length)
-{
- this->send_message (buffer, length);
- this->handler_->error_message_complete ();
-}
-
-void
-JAWS_Synch_IO::send_message (const char *buffer,
- int length)
-{
- ACE_SOCK_Stream stream;
- stream.set_handle (this->handle_);
- stream.send_n (buffer, length);
-}
-
-// This only works on Win32
-#if defined (ACE_WIN32)
-
-JAWS_Asynch_IO::JAWS_Asynch_IO (void)
-{
-}
-
-JAWS_Asynch_IO::~JAWS_Asynch_IO (void)
-{
- ACE_OS::closesocket (this->handle_);
-}
-
-void
-JAWS_Asynch_IO::read (ACE_Message_Block& mb,
- int size)
-{
- ACE_Asynch_Read_Stream ar;
-
- if (ar.open (*this, this->handle_) == -1
- || ar.read (mb, size) == -1)
- this->handler_->read_error ();
-}
-
-// This method will be called when an asynchronous read completes on a
-// stream.
-
-void
-JAWS_Asynch_IO::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
-{
- // This callback is for this->receive_file()
- if (result.act () != 0)
- {
- int code = 0;
- if (result.success () && result.bytes_transferred () != 0)
- {
- if (result.message_block ().length () == result.message_block ().size ())
- code = ACE_Filecache_Handle::SUCCESS;
- else
- {
- ACE_Asynch_Read_Stream ar;
- if (ar.open (*this, this->handle_) == -1
- || ar.read (result.message_block (),
- result.message_block ().size () - result.message_block ().length (),
- result.act ()) == -1)
- code = -1;
- else
- return;
- }
- }
- else
- code = -1;
-
- if (code == ACE_Filecache_Handle::SUCCESS)
- this->handler_->receive_file_complete ();
- else
- this->handler_->receive_file_error (code);
-
- delete &result.message_block ();
- delete (ACE_Filecache_Handle *) result.act ();
- }
- else
- {
- // This callback is for this->read()
- if (result.success ()
- && result.bytes_transferred () != 0)
- this->handler_->read_complete (result.message_block ());
- else
- this->handler_->read_error ();
- }
-}
-
-void
-JAWS_Asynch_IO::receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length)
-{
- ACE_Message_Block *mb = 0;
- ACE_Filecache_Handle *handle;
-
- ACE_NEW (handle, ACE_Filecache_Handle (filename, entire_length, NOMAP));
-
- int result = handle->error ();
-
- if (result == ACE_Filecache_Handle::SUCCESS)
- {
- ACE_OS::memcpy (handle->address (),
- initial_data,
- initial_data_length);
-
- int bytes_to_read = entire_length - initial_data_length;
-
- ACE_NEW (mb, ACE_Message_Block ((char *)handle->address ()
- + initial_data_length, bytes_to_read));
-
- if (mb == 0)
- {
- errno = ENOMEM;
- result = -1;
- }
- else
- {
- ACE_Asynch_Read_Stream ar;
-
- if (ar.open (*this, this->handle_) == -1
- || ar.read (*mb, mb->size () - mb->length (), handle) == -1)
- result = -1;
- }
- }
-
- if (result != ACE_Filecache_Handle::SUCCESS)
- {
- this->handler_->receive_file_error (result);
- delete mb;
- delete handle;
- }
-}
-
-void
-JAWS_Asynch_IO::transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size)
-{
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer = 0;
- ACE_Filecache_Handle *handle = new ACE_Filecache_Handle (filename, NOMAP);
-
- int result = handle->error ();
-
- if (result == ACE_Filecache_Handle::SUCCESS)
- {
- ACE_Message_Block header_mb (header, header_size);
- ACE_Message_Block trailer_mb (trailer, trailer_size);
-
- header_and_trailer = new ACE_Asynch_Transmit_File::Header_And_Trailer
- (&header_mb, header_size, &trailer_mb, trailer_size);
-
- ACE_Asynch_Transmit_File tf;
-
- if (tf.open (*this, this->handle_) == -1
- || tf.transmit_file (handle->handle (), // file handle
- header_and_trailer, // header and trailer data
- 0, // bytes_to_write
- 0, // offset
- 0, // offset_high
- 0, // bytes_per_send
- 0, // flags
- handle // act
- ) == -1)
- result = -1;
- }
-
- if (result != ACE_Filecache_Handle::SUCCESS)
- {
- this->handler_->transmit_file_error (result);
- delete header_and_trailer;
- delete handle;
- }
-}
-
-
-// This method will be called when an asynchronous transmit file completes.
-void
-JAWS_Asynch_IO::handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result)
-{
- if (result.success ())
- this->handler_->transmit_file_complete ();
- else
- this->handler_->transmit_file_error (-1);
-
- delete result.header_and_trailer ();
- delete (ACE_Filecache_Handle *) result.act ();
-}
-
-void
-JAWS_Asynch_IO::send_confirmation_message (const char *buffer,
- int length)
-{
- this->send_message (buffer, length, CONFORMATION);
-}
-
-void
-JAWS_Asynch_IO::send_error_message (const char *buffer,
- int length)
-{
- this->send_message (buffer, length, ERROR_MESSAGE);
-}
-
-void
-JAWS_Asynch_IO::send_message (const char *buffer,
- int length,
- int act)
-{
- ACE_Message_Block *mb;
- ACE_NEW (mb, ACE_Message_Block (buffer, length));
-
- if (mb == 0)
- {
- this->handler_->error_message_complete ();
- return;
- }
-
- ACE_Asynch_Write_Stream aw;
- if (aw.open (*this, this->handle_) == -1
- || aw.write (*mb, length, (void *) act) == -1)
- {
- mb->release ();
-
- if (act == CONFORMATION)
- this->handler_->confirmation_message_complete ();
- else
- this->handler_->error_message_complete ();
- }
-}
-
-void
-JAWS_Asynch_IO::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
-{
- result.message_block ().release ();
-
- if (result.act () == (void *) CONFORMATION)
- this->handler_->confirmation_message_complete ();
- else
- this->handler_->error_message_complete ();
-}
-
-#endif /* ACE_WIN32 */
-
-// #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-// template class ACE_Singleton<JAWS_VFS, ACE_SYNCH_MUTEX>;
-// #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-// #pragma instantiate ACE_Singleton<JAWS_VFS, ACE_SYNCH_MUTEX>
-// #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS/server/IO.h b/apps/JAWS/server/IO.h
deleted file mode 100644
index 5f14a1ed965..00000000000
--- a/apps/JAWS/server/IO.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// IO.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#if !defined (JAWS_IO_H)
-#define JAWS_IO_H
-
-class ACE_Message_Block;
-class JAWS_IO_Handler;
-
-#include "ace/ACE.h"
-#include "ace/Asynch_IO.h"
-
-class JAWS_IO
- // = TITLE
- //
- // This class defines the abstract interface for an I/O class in
- // the context of Web-likes servers
- //
- // = DESCRIPTION
- //
- // An I/O class should have the following interface. Derived
- // classes will define the exactly how the I/O will take place
- // (Asynchronous, Synchronous, Reactive)
-{
-public:
- JAWS_IO (void);
- virtual ~JAWS_IO (void);
- void handler (JAWS_IO_Handler *handler);
- void handle (ACE_HANDLE h);
- ACE_HANDLE handle (void);
-
- // James, please add documentation here.
-
- virtual void read (ACE_Message_Block& mb, int size) = 0;
- // read from the handle size bytes into the message block.
-
- virtual void transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size) = 0;
- // send header, filename, trailer to the handle.
-
- virtual void receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length) = 0;
- // read data from the handle and store in filename.
-
- virtual void send_confirmation_message (const char *buffer, int length) = 0;
- // send a confirmation message to the handle.
-
- virtual void send_error_message (const char *buffer, int length) = 0;
- // send an error message to the handle.
-
-protected:
- ACE_HANDLE handle_;
- JAWS_IO_Handler *handler_;
-};
-
-class JAWS_IO_Handler
- // = TITLE
- //
- // This class defines the abstract interface for an I/O handler class in
- // the context of Web-likes servers
- //
- // = DESCRIPTION
-{
-public:
- virtual void read_complete (ACE_Message_Block &data) = 0;
- // This method is called by the IO class when new client data shows
- // up.
-
- virtual void read_error (void) = 0;
- // This method is called by the IO class when there was an error in
- // reading new data from the client.
-
- virtual void transmit_file_complete (void) = 0;
- // This method is called by the IO class when the requested file has
- // been successfully transmitted to the client.
-
- virtual void transmit_file_error (int result) = 0;
- // This method is called by the IO class when there was an error in
- // transmitting the requested file to the client.
-
- virtual void receive_file_complete (void) = 0;
- // This method is called by the IO class when the requested file has
- // been successfully received from the client.
-
- virtual void receive_file_error (int result) = 0;
- // This method is called by the IO class when there was an error in
- // receiving the requested file from the client.
-
- virtual void write_error (void) = 0;
- // This method is called by the IO class when there was an error in
- // writing data to the client.
-
- virtual void confirmation_message_complete (void) = 0;
- // This method is called by the IO class when the confirmation
- // message has been delivered to the client.
-
- virtual void error_message_complete (void) = 0;
- // This method is called by the IO class when the error message has
- // been delivered to the client.
-
-};
-
-class JAWS_Synch_IO : public JAWS_IO
- // = TITLE
- //
- // This class defines the interface for a Synchronous I/O class.
- //
- // = DESCRIPTION
-{
-public:
- JAWS_Synch_IO (void);
-
- ~JAWS_Synch_IO (void);
-
- void read (ACE_Message_Block& mb, int size);
-
- void transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size);
-
- void receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length);
-
- void send_confirmation_message (const char *buffer,
- int length);
-
- void send_error_message (const char *buffer,
- int length);
-
-protected:
- virtual void send_message (const char *buffer,
- int length);
-};
-
-// This only works on Win32
-#if defined (ACE_WIN32)
-
-class JAWS_Asynch_IO : public JAWS_IO, public ACE_Handler
- // = TITLE
- //
- // This class defines the interface for a Asynchronous I/O class.
- //
- // = DESCRIPTION
-{
-public:
- JAWS_Asynch_IO (void);
-
- ~JAWS_Asynch_IO (void);
-
- void read (ACE_Message_Block& mb, int size);
-
- void transmit_file (const char *filename,
- const char *header,
- int header_size,
- const char *trailer,
- int trailer_size);
-
- void receive_file (const char *filename,
- void *initial_data,
- int initial_data_length,
- int entire_length);
-
- void send_confirmation_message (const char *buffer,
- int length);
-
- void send_error_message (const char *buffer,
- int length);
-
-protected:
- enum Message_Types
- {
- CONFORMATION,
- ERROR_MESSAGE
- };
-
- virtual void send_message (const char *buffer,
- int length,
- int act);
-
- virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result &result);
- // This method will be called when an asynchronous read completes on
- // a stream.
-
- virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result &result);
- // This method will be called when an asynchronous write completes
- // on a stream.
-
- virtual void handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result);
- // This method will be called when an asynchronous transmit file
- // completes.
-};
-
-#endif /* ACE_WIN32 */
-#endif /* JAWS_IO_H */
-
diff --git a/apps/JAWS/server/JAWS_Concurrency.cpp b/apps/JAWS/server/JAWS_Concurrency.cpp
deleted file mode 100644
index 3622f1b664f..00000000000
--- a/apps/JAWS/server/JAWS_Concurrency.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-// $Id$
-
-#include "JAWS_Concurrency.h"
-
-JAWS_Concurrency_Base::JAWS_Concurrency_Base (void)
-{
-}
-
-int
-JAWS_Concurrency_Base::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- return this->putq (mb, tv);
-}
-
-int
-JAWS_Concurrency_Base::svc (void)
-{
- int result = 0;
-
- for (;;)
- {
- ACE_Message_Block *mb;
-
- // At this point we could set a timeout value so that the
- // threading strategy can delete a thread if there is nothing to
- // do. Carefully think how to implement it so you don't leave
- // yourself with 0 threads.
-
- result = this->getq (mb);
- if (result == -1 || mb == 0)
- break;
-
- this->put_next (mb);
- }
- return 0;
-}
-
-JAWS_Dispatch_Policy::JAWS_Dispatch_Policy (void)
-{
-}
-
-JAWS_Dispatch_Policy::~JAWS_Dispatch_Policy (void)
-{
-}
-
-JAWS_Dispatcher::JAWS_Dispatcher (JAWS_Dispatch_Policy *policy)
- : policy_(policy)
-{
-}
-
-JAWS_Thread_Pool_Task::JAWS_Thread_Pool_Task (long flags,
- int nthreads,
- int maxthreads)
- : nthreads_ (nthreads),
- maxthreads_ (maxthreads)
-{
- if (this->activate (flags, nthreads) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_Thread_Pool_Task::activate"));
-}
-
-JAWS_Thread_Per_Task::JAWS_Thread_Per_Task (long flags, int maxthreads)
- : flags_ (flags),
- maxthreads_ (maxthreads)
-{
-}
-
-int
-JAWS_Thread_Per_Task::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- const int force_active = 1;
- const int nthreads = 1;
-
- if (this->activate (this->flags_, nthreads, force_active) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Thread_Pool_Task::activate"),
- -1);
-
- this->putq (mb, tv);
-
- return 0;
-}
diff --git a/apps/JAWS/server/JAWS_Concurrency.h b/apps/JAWS/server/JAWS_Concurrency.h
deleted file mode 100644
index dec07c7d2ce..00000000000
--- a/apps/JAWS/server/JAWS_Concurrency.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#if !defined (JAWS_CONCURRENCY_H)
-#define JAWS_CONCURRENCY_H
-
-#include "ace/Synch.h"
-#include "ace/Task.h"
-#include "IO.h"
-
-class JAWS_Concurrency_Base : public ACE_Task<ACE_MT_SYNCH>
- // = TITLE
- // Base class for different concurrency models
- //
- // = DESCRIPTION
- // Provides a default implementaion of the virtual put() method
- // which calls putq(), but can be overloaded to do something
- // synchronously, such as call put_next().
-
-{
-public:
- JAWS_Concurrency_Base (void);
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- virtual int svc (void);
-};
-
-class JAWS_Dispatch_Policy
- // = TITLE
- // Policy mechanism for choosing different concurrency models.
- //
- // = DESCRIPTION
- // Given some (unspecified) state, decides what the concurrency
- // model should be. (For now, we always return the same model.)
-{
-public:
- JAWS_Dispatch_Policy (void);
- virtual ~JAWS_Dispatch_Policy (void);
- virtual JAWS_Concurrency_Base * update (void *state = 0) = 0;
-};
-
-class JAWS_Dispatcher
- // = TITLE
- // The class that is responsible to delivering events to the
- // appropriate concurrency mechanism.
- //
- // = DESCRIPTION
- // JAWS_IO_Handler calls into the dispatcher so that the completed
- // IO can find a thread to take care of it.
-{
-public:
- JAWS_Dispatcher (JAWS_Dispatch_Policy *policy);
-
- int dispatch (JAWS_IO_Handler *ioh);
-
-private:
- JAWS_Dispatch_Policy *policy_;
-};
-
-class JAWS_Thread_Pool_Task : public JAWS_Concurrency_Base
- // = TITLE
- // Used to implement Thread Pool Concurrency Strategy
- //
- // = DESCRIPTION
- // This task is created to hold a pool of threads that receive
- // requests through the message queue.
-{
-public:
- JAWS_Thread_Pool_Task (long flags = THR_NEW_LWP,
- int nthreads = 5,
- int maxthreads = 20);
-
-private:
- int nthreads_;
- int maxthreads_;
-};
-
-class JAWS_Thread_Per_Task : public JAWS_Concurrency_Base
- // = TITLE
- // Used to implement Thread Per Request Concurrency Strategy
- //
- // = DESCRIPTION
- // As each new message arrives from the queue, a new thread is
- // spawned to handle it. This is done by overloading put to call
- // activate.
-{
-public:
- JAWS_Thread_Per_Task (long flags = THR_NEW_LWP, int maxthreads = 20);
-
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
-
-private:
- long flags_;
- int maxthreads_;
-};
-
-#endif /* !defined (JAWS_CONCURRENCY_H) */
diff --git a/apps/JAWS/server/JAWS_Pipeline.cpp b/apps/JAWS/server/JAWS_Pipeline.cpp
deleted file mode 100644
index 77fb54c6e48..00000000000
--- a/apps/JAWS/server/JAWS_Pipeline.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// $Id$
-
-#include "JAWS_Pipeline.h"
-
-JAWS_Pipeline::JAWS_Pipeline (void)
-{
-}
-
-int
-JAWS_Pipeline::open (void *)
-{
- // Simply call into the virtual svc() method.
- if (this->svc () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "JAWS_Pipeline::svc"),
- -1);
- return 0;
-}
-
-int
-JAWS_Pipeline::close (u_long)
-{
- return 0;
-}
-
-#include "JAWS_Pipeline_Handler.cpp"
diff --git a/apps/JAWS/server/JAWS_Pipeline.h b/apps/JAWS/server/JAWS_Pipeline.h
deleted file mode 100644
index 7867213076f..00000000000
--- a/apps/JAWS/server/JAWS_Pipeline.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#if !defined (JAWS_PIPELINE_H)
-#define JAWS_PIPELINE_H
-
-#include "ace/Synch.h"
-#include "ace/Service_Config.h"
-#include "ace/Stream.h"
-#include "ace/Module.h"
-#include "ace/Task.h"
-
-typedef ACE_Stream<ACE_NULL_SYNCH> JAWS_Pipeline_Stream;
-typedef ACE_Module<ACE_NULL_SYNCH> JAWS_Pipeline_Module;
-typedef ACE_Task<ACE_NULL_SYNCH> JAWS_Pipeline_Task;
-
-class JAWS_Pipeline : public JAWS_Pipeline_Task
- // = TITLE
- // Methods that are common to pipeline components
-{
-public:
- JAWS_Pipeline (void);
- // ACE_Task hooks
-
- virtual int open (void * = 0);
- virtual int close (u_long = 0);
-};
-
-#include "JAWS_Pipeline_Handler.h"
-
-#endif /* !defined (JAWS_PIPELINE_H) */
diff --git a/apps/JAWS/server/JAWS_Pipeline_Handler.cpp b/apps/JAWS/server/JAWS_Pipeline_Handler.cpp
deleted file mode 100644
index 630298b8fb5..00000000000
--- a/apps/JAWS/server/JAWS_Pipeline_Handler.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// $Id$
-
-#if !defined (JAWS_PIPELINE_HANDLER_CPP)
-#define JAWS_PIPELINE_HANDLER_CPP
-
-#include "JAWS_Pipeline_Handler.h"
-
-template <class TYPE>
-JAWS_Pipeline_Handler<TYPE>::JAWS_Pipeline_Handler (void)
-{
-}
-
-template <class TYPE> int
-JAWS_Pipeline_Handler<TYPE>::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- TYPE *data = ACE_dynamic_cast (TYPE *,
- mb->data_block ());
-
- int status = this->handle_input (data, tv);
-
- return (status != -1) ? this->put_next (mb, tv) : -1;
-}
-
-#endif /* !defined (JAWS_PIPELINE_HANDLER_CPP) */
diff --git a/apps/JAWS/server/JAWS_Pipeline_Handler.h b/apps/JAWS/server/JAWS_Pipeline_Handler.h
deleted file mode 100644
index 784b44f8b7c..00000000000
--- a/apps/JAWS/server/JAWS_Pipeline_Handler.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#if !defined (JAWS_PIPELINE_HANDLER_H)
-#define JAWS_PIPELINE_HANDLER_H
-
-#include "JAWS_Pipeline.h"
-
-template <class TYPE>
-class JAWS_Pipeline_Handler : public JAWS_Pipeline_Task
- // = TITLE
- // Methods that are common to pipeline components
-{
-public:
- JAWS_Pipeline_Handler (void);
- // ACE_Task hooks
-
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- // inherited from ACE_Task
-
- virtual int handle_put (TYPE *data, ACE_Time_Value *tv) = 0;
- // Callback hook for specialized data processing
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS_Pipeline_Handler.cpp"
-#endif
-
-#endif /* !defined (JAWS_PIPELINE_HANDLER_H) */
diff --git a/apps/JAWS/server/Makefile b/apps/JAWS/server/Makefile
deleted file mode 100644
index a6ab8f0e86f..00000000000
--- a/apps/JAWS/server/Makefile
+++ /dev/null
@@ -1,605 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE Adapter Web Server (JAWS)
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = main
-
-LIB = libJAWS.a
-
-MYFILES = \
- HTTP_Server \
- HTTP_Config \
- HTTP_Handler \
- HTTP_Helpers \
- JAWS_Pipeline \
- JAWS_Concurrency \
- HTTP_Request \
- HTTP_Response \
- Parse_Headers \
- IO
-
-LSRC = $(addsuffix .cpp,$(MYFILES))
-LOBJ = $(addsuffix .o,$(MYFILES))
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-LDLIBS = -lJAWS
-
-BUILD = $(VOBJS) $(VLIB) $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-# The contents of rules.bin.GNU are expanded in Local targets, below.
-# include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-# include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-# Expand rules.bin.GNU, but without the $(VOBJS) dependencies.
-VBIN = $(BIN:%=%$(VAR))
-
-$(BIN): %: $(VDIR)%.o
- $(LINK.cc) -o $@ $^ $(LDFLAGS) $(VLDLIBS) $(POSTLINK)
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/HTTP_Server.o .obj/HTTP_Server.so .shobj/HTTP_Server.o .shobj/HTTP_Server.so: HTTP_Server.cpp \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/Proactor.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_List.h \
- $(ACE_ROOT)/ace/Timer_List_T.h \
- $(ACE_ROOT)/ace/Timer_Heap.h \
- $(ACE_ROOT)/ace/Timer_Heap_T.h \
- $(ACE_ROOT)/ace/Timer_Wheel.h \
- $(ACE_ROOT)/ace/Timer_Wheel_T.h \
- IO.h HTTP_Server.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Svc_Handler.i \
- $(ACE_ROOT)/ace/Acceptor.i \
- HTTP_Handler.h HTTP_Request.h Parse_Headers.h HTTP_Response.h
-.obj/HTTP_Config.o .obj/HTTP_Config.so .shobj/HTTP_Config.o .shobj/HTTP_Config.so: HTTP_Config.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- HTTP_Config.h
-.obj/HTTP_Handler.o .obj/HTTP_Handler.so .shobj/HTTP_Handler.o .shobj/HTTP_Handler.so: HTTP_Handler.cpp \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Filecache.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- HTTP_Handler.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- HTTP_Request.h Parse_Headers.h HTTP_Response.h IO.h HTTP_Helpers.h
-.obj/HTTP_Helpers.o .obj/HTTP_Helpers.so .shobj/HTTP_Helpers.o .shobj/HTTP_Helpers.so: HTTP_Helpers.cpp HTTP_Helpers.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i
-.obj/JAWS_Pipeline.o .obj/JAWS_Pipeline.so .shobj/JAWS_Pipeline.o .shobj/JAWS_Pipeline.so: JAWS_Pipeline.cpp JAWS_Pipeline.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Stream.i \
- JAWS_Pipeline_Handler.h JAWS_Pipeline_Handler.cpp
-.obj/JAWS_Concurrency.o .obj/JAWS_Concurrency.so .shobj/JAWS_Concurrency.o .shobj/JAWS_Concurrency.so: JAWS_Concurrency.cpp JAWS_Concurrency.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h
-.obj/HTTP_Request.o .obj/HTTP_Request.so .shobj/HTTP_Request.o .shobj/HTTP_Request.so: HTTP_Request.cpp \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- HTTP_Request.h Parse_Headers.h HTTP_Helpers.h HTTP_Config.h
-.obj/HTTP_Response.o .obj/HTTP_Response.so .shobj/HTTP_Response.o .shobj/HTTP_Response.so: HTTP_Response.cpp \
- $(ACE_ROOT)/ace/Process.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Process.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- HTTP_Response.h HTTP_Request.h Parse_Headers.h HTTP_Helpers.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- HTTP_Config.h IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h
-.obj/Parse_Headers.o .obj/Parse_Headers.so .shobj/Parse_Headers.o .shobj/Parse_Headers.so: Parse_Headers.cpp Parse_Headers.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i
-.obj/IO.o .obj/IO.so .shobj/IO.o .shobj/IO.so: IO.cpp IO.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- HTTP_Helpers.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Filecache.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS/server/Parse_Headers.cpp b/apps/JAWS/server/Parse_Headers.cpp
deleted file mode 100644
index 2a103a081a0..00000000000
--- a/apps/JAWS/server/Parse_Headers.cpp
+++ /dev/null
@@ -1,355 +0,0 @@
-// $Id$
-
-#include "Parse_Headers.h"
-
-
-// Implementation of class Headers
-
-Headers::Headers (void) : done_(0)
-{
-}
-
-Headers::~Headers (void)
-{
-}
-
-void
-Headers::recognize (const char * const header)
-{
- (void)this->map_[header];
-}
-
-void
-Headers::parse_header_line (char * const header_line)
-{
- char *ptr = header_line;
- char *buf = header_line;
- int offset = 1;
-
- ptr = ACE_OS::strchr (header_line, '\n');
-
- if (ptr > header_line && ptr[-1] == '\r')
- {
- ptr--;
- offset++;
- }
-
- if (ptr == header_line)
- {
- this->done_ = 1;
- return;
- }
-
- *ptr = '\0';
- ptr += offset;
-
- char *value;
- char *header = ACE_OS::strtok_r (buf, ":", &value);
-
- ACE_DEBUG((LM_DEBUG, " (%t) Headers::parse_header_line [%s]\n",
- header ? header : "<empty>"));
-
- if (header != NULL && this->map_.mapped (header))
- {
- while (isspace (*value))
- value++;
-
- this->map_[header] = value;
-
- ACE_DEBUG((LM_DEBUG, " (%t) Headers::parse_header_line <%s>\n",
- value ? value : "<empty>"));
- }
-
- // Write back the unused portion of the input.
- ACE_OS::memmove (header_line, ptr, strlen(ptr) + 1);
-}
-
-int
-Headers::complete_header_line (char *const header_line)
-{
- // Algorithm --
- // Scan for end of line marker.
- // If the next character is linear white space, then unfold the header.
- // Else, if the next character is printable, we have a complete header line.
- // Else, presumably the next character is '\0', so the header is incomplete.
-
- // return -1 if end of line but not complete header line
- // return 0 if no end of line marker
- // return 1 if complete header line
-
- char *ptr = header_line;
- int offset;
-
- if (!this->end_of_line (ptr, offset))
- return 0;
-
- if (ptr == header_line)
- {
- ACE_OS::memmove (ptr, ptr+offset, ACE_OS::strlen (ptr + offset) + 1);
- this->done_ = 1;
- ACE_DEBUG ((LM_DEBUG, " (%t) no more headers\n"));
- return 0;
- }
-
- do
- {
- switch (ptr[offset])
- {
- case ' ':
- case '\t':
- ACE_OS::memmove (ptr, ptr+offset, ACE_OS::strlen (ptr + offset) + 1);
- break;
-
- case '\n':
- case '\r':
- return 1;
-
- default:
- if (isalpha (ptr[offset]))
- return 1;
- else
- return -1;
- }
- }
- while (this->end_of_line (ptr, offset) != 0);
-
- return 0;
-}
-
-int
-Headers::end_of_headers (void) const
-{
- return this->done_;
-}
-
-Headers_Map_Item &
-Headers::operator[] (const char * const header)
-{
- return this->map_[header];
-}
-
-const Headers_Map_Item &
-Headers::operator[] (const char * const header) const
-{
- return this->map_[header];
-}
-
-int
-Headers::end_of_line (char *&line, int &offset) const
-{
- char *old_line = line;
- char *ptr = ACE_OS::strchr (old_line, '\n');
-
- if (ptr == NULL)
- return 0;
-
- line = ptr;
- offset = 1;
-
- if (line > old_line
- && line[-1] == '\r')
- {
- line--;
- offset = 2;
- }
-
- return 1;
-}
-
-
-// Implementation of class Headers_Map
-
-Headers_Map::Headers_Map (void)
- : num_headers_(0)
-{
-}
-
-Headers_Map::~Headers_Map (void)
-{
-}
-
-Headers_Map_Item::Headers_Map_Item (void)
- : header_(0),
- value_(0)
-{
-}
-
-Headers_Map_Item::~Headers_Map_Item (void)
-{
- ACE_OS::free ((void *) this->header_);
- ACE_OS::free ((void *) this->value_);
- this->header_ = this->value_ = 0;
-}
-
-// Headers_Map_Item::operator const char * (void) const
-// {
-// return this->value_ == NULL ? this->no_value_ : this->value_;
-// }
-
-Headers_Map_Item &
-Headers_Map_Item::operator= (char * value)
-{
- ACE_OS::free ((void *) this->value_);
- this->value_ = ACE_OS::strdup (value);
- return *this;
-}
-
-Headers_Map_Item &
-Headers_Map_Item::operator= (const char * value)
-{
- ACE_OS::free ((void *) this->value_);
- this->value_ = ACE_OS::strdup (value);
- return *this;
-}
-
-Headers_Map_Item &
-Headers_Map_Item::operator= (const Headers_Map_Item & mi)
-{
- ACE_OS::free ((void *) this->value_);
- ACE_OS::free ((void *) this->header_);
- this->header_ = ACE_OS::strdup (mi.header_);
- this->value_ = (mi.value_ ? ACE_OS::strdup (mi.value_) : 0);
- return *this;
-}
-
-const char *
-Headers_Map_Item::header (void) const
-{
- return this->header_;
-}
-
-const char *
-Headers_Map_Item::value (void) const
-{
- return this->value_;
-}
-
-Headers_Map_Item &
-Headers_Map::operator[] (const char * const header)
-{
- Headers_Map_Item *item_ptr;
-
- item_ptr = this->find (header);
-
- if (item_ptr == NULL)
- item_ptr = this->place (header);
-
- return *item_ptr;
-}
-
-const Headers_Map_Item &
-Headers_Map::operator[] (const char * const header) const
-{
- Headers_Map_Item *item_ptr;
- Headers_Map *mutable_this = (Headers_Map *)this;
-
- item_ptr = this->find (header);
-
- if (item_ptr == NULL)
- item_ptr = mutable_this->place (header);
-
- return *item_ptr;
-}
-
-int
-Headers_Map::mapped (const char * const header) const
-{
- int result = this->find (header) != NULL;
-
- return result;
-}
-
-Headers_Map_Item *
-Headers_Map::find (const char * const header) const
-{
- Headers_Map *const mutable_this = (Headers_Map *) this;
-
- mutable_this->garbage_.header_ = header;
-#if 0
- Headers_Map_Item *mi_ptr = (Headers_Map_Item *)
- ::bsearch (&this->garbage_,
- this->map_,
- this->num_headers_,
- sizeof (Headers_Map_Item),
- Headers_Map::compare);
-#else
- int i = 0;
- int j = this->num_headers_;
-
- while (i < j-1)
- {
- int k = (i+j)/2;
- if (Headers_Map::compare (&this->garbage_, this->map_+k) < 0)
- j = k;
- else
- i = k;
- }
-
- Headers_Map_Item *mi_ptr = mutable_this->map_ + i;
- if (Headers_Map::compare (&this->garbage_, mi_ptr) != 0)
- mi_ptr = 0;
-#endif
-
- mutable_this->garbage_.header_ = 0;
-
- return mi_ptr;
-}
-
-Headers_Map_Item *
-Headers_Map::place (const char *const header)
-{
- this->garbage_.header_ = ACE_OS::strdup (header);
-
- int i = this->num_headers_++;
- ACE_OS::free ((void *) this->map_[i].header_);
- ACE_OS::free ((void *) this->map_[i].value_);
- this->map_[i].header_ = 0;
- this->map_[i].value_ = 0;
- Headers_Map_Item temp_item;
-
- while (i > 0)
- {
- if (Headers_Map::compare (&this->garbage_,
- &this->map_[i - 1]) > 0)
- break;
-
- this->map_[i].header_ = this->map_[i - 1].header_;
- this->map_[i].value_ = this->map_[i - 1].value_;
- this->map_[i - 1].header_ = 0;
- this->map_[i - 1].value_ = 0;
-
- i--;
- }
-
- this->map_[i].header_ = this->garbage_.header_;
- this->map_[i].value_ = this->garbage_.value_;
-
- this->garbage_.header_ = 0;
-
- return &this->map_[i];
-}
-
-int
-Headers_Map::compare (const void *item1,
- const void *item2)
-{
- Headers_Map_Item *a, *b;
- int result;
-
- a = (Headers_Map_Item *) item1;
- b = (Headers_Map_Item *) item2;
-
- if (a->header_ == 0 || b->header_ == 0)
- {
- if (a->header_ == 0 && b->header_ == 0)
- result = 0;
- else if (a->header_ == 0)
- result = 1;
- else
- result = -1;
- }
- else
- result = ACE_OS::strcasecmp (a->header_, b->header_);
-
- return (result < 0) ? -1 : (result > 0);
-}
diff --git a/apps/JAWS/server/Parse_Headers.h b/apps/JAWS/server/Parse_Headers.h
deleted file mode 100644
index 126243d4582..00000000000
--- a/apps/JAWS/server/Parse_Headers.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// Parse_Headers.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#if !defined (PARSE_HEADERS_H)
-#define PARSE_HEADERS_H
-
-#include "ace/OS.h"
-
-class Headers_Map_Item
-{
-friend class Headers_Map;
-friend class Headers;
-
-private:
- Headers_Map_Item (void);
- ~Headers_Map_Item (void);
-
- // operator const char * (void) const;
- Headers_Map_Item &operator= (char *);
- Headers_Map_Item &operator= (const char *);
- Headers_Map_Item &operator= (const Headers_Map_Item &);
-
-public:
- const char *header (void) const;
- const char *value (void) const;
-
-private:
- const char *header_;
- const char *value_;
-};
-
-class Headers_Map
- // = TITLE
- // Map textual headings to header values (e.g. "Subject:" maps to
- // "Re: My left foot"
-{
-public:
- Headers_Map (void);
- ~Headers_Map (void);
-
- Headers_Map_Item &operator[] (const char *const header);
- const Headers_Map_Item &operator[] (const char *const header) const;
-
- enum
- {
- MAX_HEADERS = 100
- };
-
- int mapped (const char *const header) const;
-
-private:
- Headers_Map_Item *find (const char *const header) const;
- Headers_Map_Item *place (const char *const header);
- static int compare (const void *item1, const void *item2);
-
-private:
- Headers_Map_Item map_[MAX_HEADERS];
- Headers_Map_Item garbage_;
-
- int num_headers_;
-};
-
-class Headers
- // = TITLE
- // A general mechanism to parse headers of Internet text headers.
- //
- // = DESCRIPTION
- // Allow interesting headers to be inserted and later associated
- // with values. This implementation assumes the parsing of headers
- // will be done from ACE_Message_Blocks.
-{
-public:
- Headers (void);
- ~Headers (void);
-
- void recognize (const char *const header);
-
- void parse_header_line (char *const header_line);
-
- int complete_header_line (char *const header_line);
- // -1 -> end of line but not complete header line
- // 0 -> no end of line marker
- // 1 -> complete header line
-
- int end_of_headers (void) const;
-
- enum
- {
- MAX_HEADER_LINE_LENGTH = 8192
- };
-
- Headers_Map_Item &operator[] (const char *const header);
- const Headers_Map_Item &operator[] (const char *const header) const;
-
-private:
- int end_of_line (char *&line, int &offset) const;
-
-private:
- Headers_Map map_;
- int done_;
-};
-
-#endif /* PARSE_HEADERS_H */
diff --git a/apps/JAWS/server/README b/apps/JAWS/server/README
deleted file mode 100644
index 4fab66d703d..00000000000
--- a/apps/JAWS/server/README
+++ /dev/null
@@ -1,201 +0,0 @@
-# -*- text -*-
-# Hey, Emacs! This is a TEXT file.
-
---------------------------
-README for the JAWS server
---------------------------
-
-This is the README file for the JAWS server.
-
-CONTENTS
-
-1. Compiling
- a. UNIX
- b. Windows NT 4.0
-
-2. Executing
- a. svc.conf parameters
- b. General Info
-
-3. Limitations
-
-4. Acknowledgements
-
-------------
-1. Compiling
-------------
-
-1a. Compiling under UNIX.
-
- Assuming that the environment variable ACE_ROOT is set
-correctly, and that you are using GNU make, compiling should simply
-involve:
-
- $ cd $ACE_ROOT/apps/JAWS/server
- $ make clean
- $ make depend
- $ make
-
-This will produce an executable named ``main''.
-
-1b. Compiling under Windows NT 4.0.
-
- Assuming you are using a recent version of Microsoft
-Visual C++, you can use the jaws.mdp file located in
-$ACE_ROOT/apps/JAWS/server to build JAWS.
-
-
-------------
-2. Executing
-------------
-
-2a. svc.conf parameters.
-
- To run JAWS, simply execute "main". It loads the HTTP server
-from the file named in the ``svc.conf'' file. The ``svc.conf'' file
-itself contains documentation about the load line. It supports the
-following command-line arguments:
-
- -p port Start JAWS on the specified port.
- -n num_threads Use num_threads as the maximum number of threads.
- -f thr_flag Can be used multiple times to set thread
- creation flags:
- THR_BOUND -> bound threads
- THR_DAEMON -> daemonized threads
- THR_DETACHED -> detached threads
- THR_NEW_LWP -> increase concurrency level
- -t thr_strategy Use one of the following strategies:
- POOL -> thread pool
- PER_REQUEST -> thread-per-request
- THROTTLE -> thread-per-request with throttling
- -i io_strategy Use one of the following strategies:
- SYNCH -> synchronous I/O
- ASYNCH -> asynchronous I/O
- -b backlog Backlog value for listen ().
-
-2b. General Information
-
- By default, JAWS will used port 5432 with 5 threads and apply
-the synchronous thread pool strategy. Unless set, the default backlog
-value is equal the value of the maximum number of threads.
-
- JAWS also responds to several environment variables. This is
-a temporary feature which will be replaced by a more general
-configuration file similar to NCSA httpd's. The environment variables
-are:
- JAWS_DOCUMENT_ROOT
- This is the starting point the server will use to look
- for files.
- Default value: the current directory of the server.
-
- JAWS_CGI_PATH
- This is intended to be a ``:'' delimited list of paths
- (similar to your regular PATH environment variable) which
- describes the possible locations for CGI binaries.
- Default value: Any directory named ``cgi-bin''.
-
- JAWS_USER_DIR
- This is the name of the subdirectory in a users home
- directory which contains publicly available WWW documents.
- Default value: ``.www''.
-
- JAWS_DIR_INDEX
- The name of the file which is sent, if present, when the URL
- leads to a directory.
- Default value: ``index.html''.
-
- You may test the server by executing telnet, opening a
-connection to the server machine on the server port. For instance:
-
- $ telnet machinename 5432
- Trying ###.###.###.###...
- Connected to machinename.your.domain
- Escape character is '^]'.
- GET /main.cpp
- // main.cpp
- //...
-
- Note that if you use an HTTP/1.0 get request, then you have
-to hit return twice before the file will be sent. E.g.,
-
- $ telnet machinename 5432
- Trying ###.###.###.###...
- Connected to machinename.your.domain
- Escape character is '^]'.
- GET /main.cpp HTTP/1.0
-
- // main.cpp
- //...
-
- Where applicable, JAWS will perform ``~'' expansion for home
-directories of usernames.
-
-
------------
-3. Features
------------
-
-(a) JAWS supports full HTTP/1.0 responses.
-
-(b) JAWS support CGI scripts on UNIX.
-
-(c) JAWS parses request headers. The mechanism can be used to parse
- headers from a variety of text based protocols (e.g., SNMP and
- NNTP).
-
-(d) Optimized filecaching.
-
---------------
-4. Limitations
---------------
-
-The following are TODO items for JAWS:
-
-status|task
-------+-----------------------
- | (a) JAWS will support HTTP/1.1 eventually, including
- | persistent connections.
- |
- | (b) JAWS can be more aggressive with its threading strategies,
- | such as:
- | (*) parallelize HTTP protocol processing, similar to
- | PHTTPD.
- | (*) prioritize threads to give more important requests
- | more execution time.
- | (*) apply throttling, similar to THTTPD.
- |
- | (c) JAWS will support a general protocol content filtering
- | mechanism which will be used to replace the existing CGI
- | support implementation.
- |
-
-Questions, comments, corrections, suggestions are welcome. Please
-feel free to send me any such correspondence.
-
-James Hu <jxh@cs.wustl.edu>
-
--------------------
-4. Acknowledgements
--------------------
-
- My partners in crime for this endeavor include:
-
- Eastman-Kodak, Rochester N.Y.
- and Object Technologies, Inc. For providing funding for this
- research.
-
- Dr. Douglas Schmidt For being my advisor, and
- convincing my sponsors to fund
- me.
-
- Irfan Pyarali For porting JAWS to NT, and
- for designing and implementing
- the JAWS IO mechanism.
-
- Sumedh Mungee For writing the benchmark
- client, and performing the
- UNIX benchmarks.
-
- Tim Harrison For his comments, advice, and
- help in designing the IO
- mechanism used by JAWS.
diff --git a/apps/JAWS/server/jaws.auth b/apps/JAWS/server/jaws.auth
deleted file mode 100644
index e3c51f7eac8..00000000000
--- a/apps/JAWS/server/jaws.auth
+++ /dev/null
@@ -1,2 +0,0 @@
-jxh:nonsense
-bill:no nonsense
diff --git a/apps/JAWS/server/jaws.dsp b/apps/JAWS/server/jaws.dsp
deleted file mode 100644
index 8310537a29d..00000000000
--- a/apps/JAWS/server/jaws.dsp
+++ /dev/null
@@ -1,175 +0,0 @@
-# Microsoft Developer Studio Project File - Name="jaws" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=jaws - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "jaws.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "jaws.mak" CFG="jaws - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "jaws - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "jaws - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "jaws - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\Release"
-# PROP BASE Intermediate_Dir ".\Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "ACE_NLOGGING" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:console /machine:I386 /out:".\jaws-r.exe" /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "jaws - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\Debug"
-# PROP BASE Intermediate_Dir ".\Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "jaws - Win32 Release"
-# Name "jaws - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\HTTP_Config.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Helpers.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Request.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Response.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Server.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\main.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Parse_Headers.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# Begin Source File
-
-SOURCE=.\HTTP_Config.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Helpers.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Request.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Response.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Server.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Server_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Parse_Headers.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# Begin Source File
-
-SOURCE=.\HTTP_Server_T.cpp
-# PROP BASE Exclude_From_Build 1
-# PROP Exclude_From_Build 1
-# End Source File
-# End Target
-# End Project
diff --git a/apps/JAWS/server/jaws.dsw b/apps/JAWS/server/jaws.dsw
deleted file mode 100644
index a05037c0982..00000000000
--- a/apps/JAWS/server/jaws.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 5.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "jaws"=.\jaws.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/JAWS/server/jaws4.mak b/apps/JAWS/server/jaws4.mak
deleted file mode 100644
index 4dcc5d9d72e..00000000000
--- a/apps/JAWS/server/jaws4.mak
+++ /dev/null
@@ -1,1051 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-!IF "$(CFG)" == ""
-CFG=jaws - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to jaws - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "jaws - Win32 Release" && "$(CFG)" != "jaws - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "jaws4.mak" CFG="jaws - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "jaws - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "jaws - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "jaws - Win32 Debug"
-RSC=rc.exe
-CPP=cl.exe
-
-!IF "$(CFG)" == "jaws - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-OUTDIR=.
-INTDIR=.\Release
-
-ALL : "$(OUTDIR)\jaws-r.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\HTTP_Config.obj"
- -@erase "$(INTDIR)\HTTP_Handler.obj"
- -@erase "$(INTDIR)\HTTP_Helpers.obj"
- -@erase "$(INTDIR)\HTTP_Request.obj"
- -@erase "$(INTDIR)\HTTP_Response.obj"
- -@erase "$(INTDIR)\HTTP_Server.obj"
- -@erase "$(INTDIR)\IO.obj"
- -@erase "$(INTDIR)\main.obj"
- -@erase "$(INTDIR)\Parse_Headers.obj"
- -@erase "$(OUTDIR)\jaws-r.exe"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /GX /O2 /I "..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "ACE_NLOGGING" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /GX /O2 /I "..\.." /D "WIN32" /D "NDEBUG" /D\
- "_CONSOLE" /D "ACE_NLOGGING" /Fp"$(INTDIR)/jaws4.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\Release/
-CPP_SBRS=.\.
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/jaws4.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 wsock32.lib ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"jaws-r.exe"
-LINK32_FLAGS=wsock32.lib ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no\
- /pdb:"$(OUTDIR)/jaws-r.pdb" /machine:I386 /out:"$(OUTDIR)/jaws-r.exe"
-LINK32_OBJS= \
- "$(INTDIR)\HTTP_Config.obj" \
- "$(INTDIR)\HTTP_Handler.obj" \
- "$(INTDIR)\HTTP_Helpers.obj" \
- "$(INTDIR)\HTTP_Request.obj" \
- "$(INTDIR)\HTTP_Response.obj" \
- "$(INTDIR)\HTTP_Server.obj" \
- "$(INTDIR)\IO.obj" \
- "$(INTDIR)\main.obj" \
- "$(INTDIR)\Parse_Headers.obj"
-
-"$(OUTDIR)\jaws-r.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "jaws - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-OUTDIR=.
-INTDIR=.\Debug
-
-ALL : "$(OUTDIR)\jaws4.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\HTTP_Config.obj"
- -@erase "$(INTDIR)\HTTP_Handler.obj"
- -@erase "$(INTDIR)\HTTP_Helpers.obj"
- -@erase "$(INTDIR)\HTTP_Request.obj"
- -@erase "$(INTDIR)\HTTP_Response.obj"
- -@erase "$(INTDIR)\HTTP_Server.obj"
- -@erase "$(INTDIR)\IO.obj"
- -@erase "$(INTDIR)\main.obj"
- -@erase "$(INTDIR)\Parse_Headers.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\jaws4.exe"
- -@erase "$(OUTDIR)\jaws4.ilk"
- -@erase "$(OUTDIR)\jaws4.pdb"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\.." /D "WIN32" /D "_DEBUG" /D\
- "_CONSOLE" /Fp"$(INTDIR)/jaws4.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\Debug/
-CPP_SBRS=.\.
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/jaws4.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 wsock32.lib aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-LINK32_FLAGS=wsock32.lib aced.lib kernel32.lib user32.lib gdi32.lib\
- winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib\
- uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/jaws4.pdb" /debug /machine:I386 /out:"$(OUTDIR)/jaws4.exe"
-LINK32_OBJS= \
- "$(INTDIR)\HTTP_Config.obj" \
- "$(INTDIR)\HTTP_Handler.obj" \
- "$(INTDIR)\HTTP_Helpers.obj" \
- "$(INTDIR)\HTTP_Request.obj" \
- "$(INTDIR)\HTTP_Response.obj" \
- "$(INTDIR)\HTTP_Server.obj" \
- "$(INTDIR)\IO.obj" \
- "$(INTDIR)\main.obj" \
- "$(INTDIR)\Parse_Headers.obj"
-
-"$(OUTDIR)\jaws4.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-################################################################################
-# Begin Target
-
-# Name "jaws - Win32 Release"
-# Name "jaws - Win32 Debug"
-
-!IF "$(CFG)" == "jaws - Win32 Release"
-
-!ELSEIF "$(CFG)" == "jaws - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=.\main.cpp
-DEP_CPP_MAIN_=\
- "..\..\..\ace\config-win32.h"\
- "..\..\..\ace\LOCK_SOCK_Acceptor.cpp"\
- "..\..\JAWS/server/HTTP_Handler.h"\
- "..\..\JAWS/server/HTTP_Request.h"\
- "..\..\JAWS/server/HTTP_Server.h"\
- "..\..\JAWS/server/IO.h"\
- ".\HTTP_Response.h"\
- ".\Parse_Headers.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Filecache.h"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\LOCK_SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\main.obj" : $(SOURCE) $(DEP_CPP_MAIN_) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\HTTP_Helpers.cpp
-DEP_CPP_HTTP_=\
- "..\..\..\ace\config-win32.h"\
- "..\..\JAWS/server/HTTP_Helpers.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\HTTP_Helpers.obj" : $(SOURCE) $(DEP_CPP_HTTP_) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\HTTP_Handler.cpp
-DEP_CPP_HTTP_H=\
- "..\..\..\ace\config-win32.h"\
- "..\..\JAWS/server/HTTP_Handler.h"\
- "..\..\JAWS/server/HTTP_Helpers.h"\
- "..\..\JAWS/server/HTTP_Request.h"\
- "..\..\JAWS/server/IO.h"\
- ".\HTTP_Response.h"\
- ".\Parse_Headers.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Filecache.h"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\HTTP_Handler.obj" : $(SOURCE) $(DEP_CPP_HTTP_H) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\IO.cpp
-DEP_CPP_IO_CP=\
- "..\..\..\ace\config-win32.h"\
- "..\..\JAWS/server/HTTP_Helpers.h"\
- "..\..\JAWS/server/IO.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Filecache.h"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\IO.obj" : $(SOURCE) $(DEP_CPP_IO_CP) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\HTTP_Request.cpp
-DEP_CPP_HTTP_R=\
- "..\..\..\ace\config-win32.h"\
- "..\..\JAWS/server/HTTP_Helpers.h"\
- "..\..\JAWS/server/HTTP_Request.h"\
- ".\HTTP_Config.h"\
- ".\Parse_Headers.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\HTTP_Request.obj" : $(SOURCE) $(DEP_CPP_HTTP_R) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\HTTP_Server.cpp
-DEP_CPP_HTTP_S=\
- "..\..\..\ace\config-win32.h"\
- "..\..\..\ace\LOCK_SOCK_Acceptor.cpp"\
- "..\..\JAWS/server/HTTP_Handler.h"\
- "..\..\JAWS/server/HTTP_Request.h"\
- "..\..\JAWS/server/HTTP_Server.h"\
- "..\..\JAWS/server/IO.h"\
- ".\HTTP_Response.h"\
- ".\Parse_Headers.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Asynch_Acceptor.h"\
- {$(INCLUDE)}"\ace\Asynch_Acceptor.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Get_Opt.h"\
- {$(INCLUDE)}"\ace\Get_Opt.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\LOCK_SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\HTTP_Server.obj" : $(SOURCE) $(DEP_CPP_HTTP_S) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\HTTP_Config.cpp
-DEP_CPP_HTTP_C=\
- "..\..\..\ace\config-win32.h"\
- ".\HTTP_Config.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\HTTP_Config.obj" : $(SOURCE) $(DEP_CPP_HTTP_C) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\HTTP_Response.cpp
-DEP_CPP_HTTP_RE=\
- "..\..\..\ace\config-win32.h"\
- "..\..\JAWS/server/HTTP_Helpers.h"\
- "..\..\JAWS/server/HTTP_Request.h"\
- "..\..\JAWS/server/IO.h"\
- ".\HTTP_Config.h"\
- ".\HTTP_Response.h"\
- ".\Parse_Headers.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Process.h"\
- {$(INCLUDE)}"\ace\Process.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\HTTP_Response.obj" : $(SOURCE) $(DEP_CPP_HTTP_RE) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Parse_Headers.cpp
-DEP_CPP_PARSE=\
- "..\..\..\ace\config-win32.h"\
- ".\Parse_Headers.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Parse_Headers.obj" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)"
-
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/apps/JAWS/server/jaws4.mdp b/apps/JAWS/server/jaws4.mdp
deleted file mode 100644
index 8741fedb12c..00000000000
--- a/apps/JAWS/server/jaws4.mdp
+++ /dev/null
Binary files differ
diff --git a/apps/JAWS/server/main.cpp b/apps/JAWS/server/main.cpp
deleted file mode 100644
index 6ec6c36fe23..00000000000
--- a/apps/JAWS/server/main.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-// $Id$
-
-#include "ace/Service_Config.h"
-#include "ace/Reactor.h"
-#include "ace/Filecache.h"
-
-#include "HTTP_Server.h"
-
-ACE_STATIC_SVC_REQUIRE(HTTP_Server)
-
-extern "C"
-{
-
- // call exit() so that static destructors get called
-static void
-handler (int)
-{
- delete (ACE_Filecache *) ACE_Filecache::instance ();
- ACE_OS::exit (0);
-}
-
-}
-
-// This is the driver entry point into JAWS. It is possible to use
-// JAWS as an ACE Service, as well.
-
-int
-main (int argc, char *argv[])
-{
- ACE_Service_Config daemon;
-
- ACE_OS::signal (SIGCHLD, SIG_IGN);
-
- // SigAction not needed since the handler will shutdown the server.
- ACE_OS::signal (SIGINT, (ACE_SignalHandler) handler);
- ACE_OS::signal (SIGUSR2, (ACE_SignalHandler) handler);
-
- if (daemon.open (argc, argv) != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), 1);
-
- // The configured service creates threads, and the
- // server won't exit until the threads die.
-
- // Run forever, performing the configured services until we receive
- // a SIGINT.
-
-
- return 0;
-}
diff --git a/apps/JAWS/server/svc.conf b/apps/JAWS/server/svc.conf
deleted file mode 100644
index a180ee1b383..00000000000
--- a/apps/JAWS/server/svc.conf
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# -p port number
-# -n threads in the server
-# -f thread activation flags
-# = THR_BOUND
-# = THR_DAEMON
-# = THR_DETACHED
-# = THR_NEW_LWP
-# -t threading strategy
-# = POOL -> thread pool
-# = PER_REQUEST -> thread per request
-# = THROTTLE -> thread per request with throttling
-# -i I/O strategy
-# = SYNCH
-# = ASYNCH
-# -b backlog value for listen ()
-#
-#
-# Thread Pool, 20 unbound threads
-# This is the baseline
-static HTTP_Server "HTTP_Server -p 5432 -n 20 -i SYNCH -t POOL -b 50 -f THR_NEW_LWP"
-#
-#
-# Thread Pool, 40 threads
-#static HTTP_Server "HTTP_Server -p 5432 -n 40 -i SYNCH -t POOL -b 50 -f THR_NEW_LWP -f THR_BOUND"
-#
-#
-# Thread-per-request, unlimited number of threads
-#static HTTP_Server "HTTP_Server -p 5432 -i SYNCH -t PER_REQUEST -b 50 -f THR_NEW_LWP"
-#
-#
-# Throttling, 40 threads
-#static HTTP_Server "HTTP_Server -p 5432 -n 40 -i SYNCH -t THROTTLE -b 50 -f THR_NEW_LWP"
-#
-#
-#dynamic HTTP_Server Service_Object * .shobj/HTTP_Server:jaws "HTTP_Server -p 5432 -s HTTP_Service"
-
diff --git a/apps/JAWS/server/test.cgi b/apps/JAWS/server/test.cgi
deleted file mode 100755
index 936afcf0d3c..00000000000
--- a/apps/JAWS/server/test.cgi
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-echo Content-type: text/plain
-echo
-
-echo args -- $*
-env
-echo Done!
-exit 0
diff --git a/apps/JAWS/stress_testing/Makefile b/apps/JAWS/stress_testing/Makefile
deleted file mode 100644
index 7894978a63d..00000000000
--- a/apps/JAWS/stress_testing/Makefile
+++ /dev/null
@@ -1,49 +0,0 @@
-#----------------------------------------------------------------------------
-# %W% %G%
-#
-# Makefile for the ACE Adapter Web Server (JAWS) client
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = http_tester benchd
-
-FILES = \
- util \
- connection \
- stats \
- cp
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(addsuffix .o,$(FILES))
-SHOBJ = $(addsuffix .so,$(FILES))
-
-INCLDIRS += -I../..
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-BUILD = $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
diff --git a/apps/JAWS/stress_testing/README b/apps/JAWS/stress_testing/README
deleted file mode 100644
index 0969522d638..00000000000
--- a/apps/JAWS/stress_testing/README
+++ /dev/null
@@ -1,54 +0,0 @@
-http_tester
------------
-
-This is the http_tester suite, an ACE based HTTP benchmarking tool,
-used to evaluate the performance of JAWS and other HTTP servers.
-
-Usage
------
-
-To use the http_tester, you need to use a config file "infile", which
-consists of a list of experiments, one on each line. http_tester logs
-output data in the "outfile".
-
-Usage: http_tester infile outfile
-
-Experiments
------------
-
-Each experiment consists of several space-delimited compulsory
-fields, as follows:
-
-experiment_id (string)
-total_number_of_requests (integer)
-request_rate (float)
-url1 (first URL)
-p1 (probability of requesting the first URL)
-url2 (second URL)
-p2 (probability of requesting the second URL)
-url3 (third URL)
-p3 (probability of requesting the third URL)
-TCP_NODELAY (boolean, 1 == TCP_NODELAY is set)
-SOCKET_RECV_BUFSIZ (usually 65536)
-
-URLS must be of the form:
-
-http://www.cs.wustl.edu:8888/~sumedh/index.html
-
-(the port number is required, im making it optional in the next version).
-
-Please see the sample file "config", for an example.
-
-Output file
------------
-
-The output file consists of the following space delimited fields:
-
-Experiment Id (string)
-Average throughput of connection (float)
-Average latency of connection (float)
-Maximum number of active connections at any given time (int)
-
-
-Sumedh Mungee
-<sumedh@cs.wustl.edu>
diff --git a/apps/JAWS/stress_testing/benchd.cpp b/apps/JAWS/stress_testing/benchd.cpp
deleted file mode 100644
index a2087fee07c..00000000000
--- a/apps/JAWS/stress_testing/benchd.cpp
+++ /dev/null
@@ -1,240 +0,0 @@
-// $Id$
-
-// benchd: Adapted from the "ntalker" example.
-// Sumedh Mungee
-
-#include "ace/Process.h"
-#include "ace/INET_Addr.h"
-#include "ace/SOCK_Dgram_Mcast.h"
-#include "ace/Reactor.h"
-#include "ace/Get_Opt.h"
-#include "ace/ARGV.h"
-
-#if defined (ACE_HAS_IP_MULTICAST)
-// network interface to subscribe to
-// this is hardware specific.
-// use netstat(1M) to find whether your interface
-// is le0 or ie0
-
-// Maximum number of arguments supported for a request
-static const int MAX_ARGS = 16;
-// Name of the client benchmarking tool
-static const char *TESTER = "http_tester";
-static int QUIET = 0;
-static const char *INTERFACE = "le0";
-static const char *MCAST_ADDR = ACE_DEFAULT_MULTICAST_ADDR;
-static const u_short UDP_PORT = ACE_DEFAULT_MULTICAST_PORT;
-static const char *OUTPUT_FILE_NAME = "benchd.log";
-static ACE_HANDLE OUTPUT_FILE;
-
-// Handle both multicast and stdin events.
-
-class Handle_Events : public ACE_Event_Handler
-{
-public:
- Handle_Events (u_short udp_port,
- const char *ip_addr,
- const char *interface,
- ACE_Reactor &reactor);
- ~Handle_Events (void);
-
- virtual int handle_input (ACE_HANDLE);
- virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask);
-
-private:
- int serve(char *buf);
- ACE_SOCK_Dgram_Mcast mcast_;
- ACE_Handle_Set handle_set_;
-};
-
-int
-Handle_Events::handle_input (ACE_HANDLE h)
-{
- char buf[BUFSIZ];
-
- if (h == 0)
- {
- int readresult = ACE_OS::read (h, buf, BUFSIZ);
- if (readresult > 0)
- {
- if (this->mcast_.send (buf, readresult) != readresult)
- {
- ACE_OS::perror ("send error");
- return -1;
- }
- return 0;
- }
- else if (readresult == -1)
- ::perror ("can't read from STDIN");
-
- return -1;
- }
- else
- {
- ACE_INET_Addr remote_addr;
-
- // receive message from multicast group
- int retcode = this->mcast_.recv (buf, sizeof buf, remote_addr);
-
- if (retcode != -1)
- {
- /*
- cout << "received datagram from host " << remote_addr.get_host_name ()
- << " on port " << remote_addr.get_port_number ()
- << " bytes = " << retcode << endl;
- */
- serve(buf);
- return 0;
- }
-
- ACE_OS::perror ("Something amiss.");
- return -1;
- }
-}
-
-int
-Handle_Events::handle_close (ACE_HANDLE h, ACE_Reactor_Mask)
-{
- if (h == 0)
- cout << "STDIN_Events handle removed from reactor." << endl << flush;
- else
- cout << "Mcast_Events handle removed from reactor." << endl << flush;
- return 0;
-}
-
-Handle_Events::~Handle_Events (void)
-{
- // ACE_OS::exit on error (bogus)...
-
- if (this->mcast_.unsubscribe () == -1)
- ACE_OS::perror ("unsubscribe fails"), ACE_OS::exit (1);
-}
-
-Handle_Events::Handle_Events (u_short udp_port,
- const char *ip_addr,
- const char *interface,
- ACE_Reactor &reactor)
-{
- // Create multicast address to listen on.
-
- ACE_INET_Addr sockmc_addr (udp_port, ip_addr);
-
- // subscribe to multicast group.
-
- if (this->mcast_.subscribe (sockmc_addr, 1, interface) == -1)
- ACE_OS::perror ("can't subscribe to multicast group"), ACE_OS::exit (1);
-
- // Disable loopbacks.
- // if (this->mcast_.set_option (IP_MULTICAST_LOOP, 0) == -1 )
- // ACE_OS::perror (" can't disable loopbacks " ), ACE_OS::exit (1);
-
- if(!QUIET) {
- this->handle_set_.set_bit (0);
- }
- this->handle_set_.set_bit (this->mcast_.get_handle ());
-
- // Register callbacks with the ACE_Reactor.
- if (reactor.register_handler (this->handle_set_,
- this,
- ACE_Event_Handler::READ_MASK) == -1)
- ACE_OS::perror ("can't register events"), ACE_OS::exit (1);
-}
-
-
-// This method handles multicast requests..
-// These requests are of the following form:
-// command (arguments)
-
-
-// currently only one is supported (and indeed needed :-))
-// http_tester arguments
-
-int
-Handle_Events::serve(char *buf)
-{
- ACE_ARGV arguments(buf);
- if(ACE_OS::strcmp(arguments[0],TESTER) == 0)
- {
- ACE_Process_Options po;
- ACE_Process p;
-
- po.set_handles (ACE_INVALID_HANDLE, OUTPUT_FILE, OUTPUT_FILE);
- po.command_line (arguments.argv ());
-
- p.spawn (po);
-
- return 0;
- }
- else
- {
- return -1;
- }
-}
-
-static void
-parse_args (int argc, char *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "i:u:q");
-
- int c;
-
- while ((c = get_opt ()) != -1)
- switch (c)
- {
- case 'q':
- QUIET = 1;
- case 'i':
- INTERFACE = get_opt.optarg;
- break;
- case 'u':
- // Usage fallthrough.
- default:
- ACE_DEBUG ((LM_DEBUG, "%s -i interface\n", argv[0]));
- ACE_OS::exit (1);
- }
-}
-
-static sig_atomic_t done = 0;
-
-// Signal handler.
-
-extern "C" void
-handler (int)
-{
- done = 1;
-}
-
-int
-main (int argc, char *argv[])
-{
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGINT);
- ACE_OS::signal(SIGCLD, SIG_IGN);
- ACE_UNUSED_ARG (sa);
-
- parse_args (argc, argv);
-
- OUTPUT_FILE = ACE_OS::open(OUTPUT_FILE_NAME, O_CREAT | O_WRONLY, 0644);
- if(OUTPUT_FILE == 0)
- return 1;
-
- ACE_Reactor reactor;
- Handle_Events handle_events (UDP_PORT, MCAST_ADDR, INTERFACE, reactor);
-
- // main loop
-
- while (!done)
- reactor.handle_events ();
-
- ACE_OS::close(OUTPUT_FILE);
- cout << "\nbenchd done.\n";
- return 0;
-}
-#else
-int
-main (int argc, char *argv[])
-{
- ACE_ERROR ((LM_ERROR, "error: %s must be run on a platform that support IP multicast\n",
- argv[0]));
- return 0;
-}
-#endif /* ACE_HAS_IP_MULTICAST */
diff --git a/apps/JAWS/stress_testing/client.h b/apps/JAWS/stress_testing/client.h
deleted file mode 100644
index 58ef98c7bdf..00000000000
--- a/apps/JAWS/stress_testing/client.h
+++ /dev/null
@@ -1,8 +0,0 @@
-// $Id$
-
-#include "global.h"
-#include "util.h"
-#include "http.h"
-#include "cp.h"
-#include "stats.h"
-
diff --git a/apps/JAWS/stress_testing/clients.mak b/apps/JAWS/stress_testing/clients.mak
deleted file mode 100644
index cf3e8a818fe..00000000000
--- a/apps/JAWS/stress_testing/clients.mak
+++ /dev/null
@@ -1,1616 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-!IF "$(CFG)" == ""
-CFG=clients - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to clients - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "clients - Win32 Release" && "$(CFG)" !=\
- "clients - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "clients.mak" CFG="clients - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "clients - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "clients - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "clients - Win32 Debug"
-RSC=rc.exe
-CPP=cl.exe
-
-!IF "$(CFG)" == "clients - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-OUTDIR=.
-INTDIR=.\Release
-
-ALL : "$(OUTDIR)\clients.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\connection.obj"
- -@erase "$(INTDIR)\cp.obj"
- -@erase "$(INTDIR)\http_tester.obj"
- -@erase "$(INTDIR)\stats.obj"
- -@erase "$(INTDIR)\util.obj"
- -@erase "$(OUTDIR)\clients.exe"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE"\
- /Fp"$(INTDIR)/clients.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\Release/
-CPP_SBRS=.\.
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/clients.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-LINK32_FLAGS=ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no\
- /pdb:"$(OUTDIR)/clients.pdb" /machine:I386 /out:"$(OUTDIR)/clients.exe"
-LINK32_OBJS= \
- "$(INTDIR)\connection.obj" \
- "$(INTDIR)\cp.obj" \
- "$(INTDIR)\http_tester.obj" \
- "$(INTDIR)\stats.obj" \
- "$(INTDIR)\util.obj"
-
-"$(OUTDIR)\clients.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "clients - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-OUTDIR=.
-INTDIR=.\Debug
-
-ALL : "$(OUTDIR)\clients.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\connection.obj"
- -@erase "$(INTDIR)\cp.obj"
- -@erase "$(INTDIR)\http_tester.obj"
- -@erase "$(INTDIR)\stats.obj"
- -@erase "$(INTDIR)\util.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\clients.exe"
- -@erase "$(OUTDIR)\clients.ilk"
- -@erase "$(OUTDIR)\clients.pdb"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE"\
- /Fp"$(INTDIR)/clients.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\Debug/
-CPP_SBRS=.\.
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/clients.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-LINK32_FLAGS=aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/clients.pdb" /debug /machine:I386 /out:"$(OUTDIR)/clients.exe"
-LINK32_OBJS= \
- "$(INTDIR)\connection.obj" \
- "$(INTDIR)\cp.obj" \
- "$(INTDIR)\http_tester.obj" \
- "$(INTDIR)\stats.obj" \
- "$(INTDIR)\util.obj"
-
-"$(OUTDIR)\clients.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-################################################################################
-# Begin Target
-
-# Name "clients - Win32 Release"
-# Name "clients - Win32 Debug"
-
-!IF "$(CFG)" == "clients - Win32 Release"
-
-!ELSEIF "$(CFG)" == "clients - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=.\util.cpp
-
-!IF "$(CFG)" == "clients - Win32 Release"
-
-DEP_CPP_UTIL_=\
- "..\..\..\ace\config-win32.h"\
- ".\connection.h"\
- ".\global.h"\
- ".\util.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Profile_Timer.h"\
- {$(INCLUDE)}"\ace\Profile_Timer.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\util.obj" : $(SOURCE) $(DEP_CPP_UTIL_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "clients - Win32 Debug"
-
-DEP_CPP_UTIL_=\
- "..\..\..\ace\config-win32.h"\
- ".\connection.h"\
- ".\global.h"\
- ".\util.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Profile_Timer.h"\
- {$(INCLUDE)}"\ace\Profile_Timer.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\util.obj" : $(SOURCE) $(DEP_CPP_UTIL_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\http_tester.cpp
-
-!IF "$(CFG)" == "clients - Win32 Release"
-
-DEP_CPP_HTTP_=\
- "..\..\..\ace\config-win32.h"\
- ".\client.h"\
- ".\connection.h"\
- ".\cp.h"\
- ".\global.h"\
- ".\http.h"\
- ".\stats.h"\
- ".\util.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Profile_Timer.h"\
- {$(INCLUDE)}"\ace\Profile_Timer.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\http_tester.obj" : $(SOURCE) $(DEP_CPP_HTTP_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "clients - Win32 Debug"
-
-DEP_CPP_HTTP_=\
- "..\..\..\ace\config-win32.h"\
- ".\client.h"\
- ".\connection.h"\
- ".\cp.h"\
- ".\global.h"\
- ".\http.h"\
- ".\stats.h"\
- ".\util.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Profile_Timer.h"\
- {$(INCLUDE)}"\ace\Profile_Timer.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\http_tester.obj" : $(SOURCE) $(DEP_CPP_HTTP_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\stats.cpp
-
-!IF "$(CFG)" == "clients - Win32 Release"
-
-DEP_CPP_STATS=\
- "..\..\..\ace\config-win32.h"\
- ".\global.h"\
- ".\stats.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Profile_Timer.h"\
- {$(INCLUDE)}"\ace\Profile_Timer.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\stats.obj" : $(SOURCE) $(DEP_CPP_STATS) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "clients - Win32 Debug"
-
-DEP_CPP_STATS=\
- "..\..\..\ace\config-win32.h"\
- ".\global.h"\
- ".\stats.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Profile_Timer.h"\
- {$(INCLUDE)}"\ace\Profile_Timer.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\stats.obj" : $(SOURCE) $(DEP_CPP_STATS) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\connection.cpp
-
-!IF "$(CFG)" == "clients - Win32 Release"
-
-DEP_CPP_CONNE=\
- "..\..\..\ace\config-win32.h"\
- ".\connection.h"\
- ".\global.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Profile_Timer.h"\
- {$(INCLUDE)}"\ace\Profile_Timer.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\connection.obj" : $(SOURCE) $(DEP_CPP_CONNE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "clients - Win32 Debug"
-
-DEP_CPP_CONNE=\
- "..\..\..\ace\config-win32.h"\
- ".\connection.h"\
- ".\global.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Profile_Timer.h"\
- {$(INCLUDE)}"\ace\Profile_Timer.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\connection.obj" : $(SOURCE) $(DEP_CPP_CONNE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\cp.cpp
-
-!IF "$(CFG)" == "clients - Win32 Release"
-
-DEP_CPP_CP_CP=\
- "..\..\..\ace\config-win32.h"\
- ".\connection.h"\
- ".\cp.h"\
- ".\global.h"\
- ".\stats.h"\
- ".\util.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Profile_Timer.h"\
- {$(INCLUDE)}"\ace\Profile_Timer.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\cp.obj" : $(SOURCE) $(DEP_CPP_CP_CP) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "clients - Win32 Debug"
-
-DEP_CPP_CP_CP=\
- "..\..\..\ace\config-win32.h"\
- ".\connection.h"\
- ".\cp.h"\
- ".\global.h"\
- ".\stats.h"\
- ".\util.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Local_Tokens.h"\
- {$(INCLUDE)}"\ace\Local_Tokens.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Map_Manager.h"\
- {$(INCLUDE)}"\ace\Map_Manager.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Pipe.h"\
- {$(INCLUDE)}"\ace\Pipe.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Profile_Timer.h"\
- {$(INCLUDE)}"\ace\Profile_Timer.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\ReactorEx.h"\
- {$(INCLUDE)}"\ace\ReactorEx.i"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Connector.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Token.h"\
- {$(INCLUDE)}"\ace\Token.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\cp.obj" : $(SOURCE) $(DEP_CPP_CP_CP) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/apps/JAWS/stress_testing/clients.mdp b/apps/JAWS/stress_testing/clients.mdp
deleted file mode 100644
index 50ac2da09e1..00000000000
--- a/apps/JAWS/stress_testing/clients.mdp
+++ /dev/null
Binary files differ
diff --git a/apps/JAWS/stress_testing/config b/apps/JAWS/stress_testing/config
deleted file mode 100644
index 7e730eaef10..00000000000
--- a/apps/JAWS/stress_testing/config
+++ /dev/null
@@ -1,3 +0,0 @@
-1.0 1 1 http://localhost:5432/IO.h 1 a 0 b 0 1 65536
-2.0 1 1 http://localhost:5432/IO.h 1 a 0 b 0 1 65536
-
diff --git a/apps/JAWS/stress_testing/connection.cpp b/apps/JAWS/stress_testing/connection.cpp
deleted file mode 100644
index a8f38074d72..00000000000
--- a/apps/JAWS/stress_testing/connection.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-// $Id$
-
-#include "connection.h"
-
-
-// Make the connection to the WEB server
-
-int connection::connect(char *hostname_opt_port, int tcp_nodelay, int sockbufsiz) {
- if(!hostname_opt_port) return 1;
-
- char *hostname_with_port;
- // Check to see if portnumber is specified in the hostnameport
- // If not, append :80
- if(!ACE_OS::strchr(hostname_opt_port,':')) {
- hostname_with_port = new char[ACE_OS::strlen(hostname_opt_port) + 3];
- ACE_OS::sprintf(hostname_with_port, "%s:%d", hostname_opt_port, 80);
- }
- else {
- hostname_with_port = hostname_opt_port;
- }
-
- // Beyond this point, hostname_with_port is of the form hostname:port
-
- ACE_INET_Addr server_addr(hostname_with_port);
-
- // Connect to server
-
- ACE_SOCK_Connector con;
-
- if(con.connect(stream_, server_addr) == -1) {
- perror("ACE_SOCK_Connector::connect");
- return 1;
- }
-
-
- // tcp_nodelay processing.
-
- // turn off weird ack things
- if(tcp_nodelay) {
- struct protoent *p = ACE_OS::getprotobyname ("tcp");
- int one = 1;
-
- if (p && stream_.set_option (p->p_proto,
- TCP_NODELAY,
- (char *)& one,
- sizeof (one))) {
- perror("tcp_nodelay");
- return 1;
- }
- }
-
- if(sockbufsiz)
- if (stream_.set_option (SOL_SOCKET,
- SO_RCVBUF,
- (char *) &sockbufsiz,
- sizeof sockbufsiz) == -1) {
- perror("socket_queue_size");
- return 1;
- }
-
- return 0;
-}
-
-int connection::read(void *buffer, size_t maxlen, unsigned int timeout_seconds) {
- ACE_UNUSED_ARG (timeout_seconds);
- return stream_.recv(buffer, maxlen);
-}
-
-int connection::write(const void *buffer, size_t maxlen, unsigned int timeout_seconds) {
- ACE_UNUSED_ARG (timeout_seconds);
- return stream_.send(buffer, maxlen);
-}
-
-int connection::write_n(const void *buffer, size_t len, unsigned int timeout_seconds) {
- ACE_UNUSED_ARG (timeout_seconds);
- if(stream_.send_n(buffer, len) == -1)
- ACE_ERROR_RETURN((LM_ERROR, "Write failed for %s", buffer),1);
- return 0;
-}
-
-int connection::read_n(void *buffer, size_t maxlen, unsigned int timeout_seconds) {
- ACE_UNUSED_ARG (timeout_seconds);
- if(stream_.recv_n(buffer, maxlen) == -1)
- ACE_ERROR_RETURN((LM_ERROR, "Read failed.."),1);
- return 1;
-}
-
-int connection::close(void) {
- stream_.close_reader();
- stream_.close_writer();
- stream_.close();
- return 0;
-}
-
-connection::~connection(void) {
- this->close();
-}
diff --git a/apps/JAWS/stress_testing/connection.h b/apps/JAWS/stress_testing/connection.h
deleted file mode 100644
index 5eaa164bc78..00000000000
--- a/apps/JAWS/stress_testing/connection.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// $Id$
-
-#include "global.h"
-
-#ifndef _D_connection
-#define _D_connection
-class connection {
-
-public:
- int connect(char *hostname_opt_port, int tcp_nodelay, int sockbufsiz);
- read(void *buffer, size_t maxlen, unsigned int timeout_seconds = 60);
- write(const void *buffer, size_t maxlen, unsigned int timeout_seconds = 60);
- write_n(const void *buffer, size_t len, unsigned int timeout_seconds = 60);
- read_n(void *buffer, size_t maxlen, unsigned int timeout_seconds = 60);
- int close(void);
- ~connection(void);
-
-private:
- ACE_SOCK_Stream stream_;
- char sockbuf[66000];
-};
-#endif
diff --git a/apps/JAWS/stress_testing/cp.cpp b/apps/JAWS/stress_testing/cp.cpp
deleted file mode 100644
index b593cc23f0a..00000000000
--- a/apps/JAWS/stress_testing/cp.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// $Id$
-
-#include "cp.h"
-
-Client_Parameters::Client_Parameters(int i) {
-
- id = i;
-
-}
diff --git a/apps/JAWS/stress_testing/cp.h b/apps/JAWS/stress_testing/cp.h
deleted file mode 100644
index ad2e5ddf31b..00000000000
--- a/apps/JAWS/stress_testing/cp.h
+++ /dev/null
@@ -1,14 +0,0 @@
-// $Id$
-
-#include "util.h"
-#include "stats.h"
-
-class Client_Parameters {
-public:
- Client_Parameters(int);
- URL *url;
- static Stats *stats;
- static int tcp_nodelay;
- static int sockbufsiz;
- int id;
-};
diff --git a/apps/JAWS/stress_testing/global.h b/apps/JAWS/stress_testing/global.h
deleted file mode 100644
index 8cb45fb3dd1..00000000000
--- a/apps/JAWS/stress_testing/global.h
+++ /dev/null
@@ -1,26 +0,0 @@
-// $Id$
-
-#include "ace/ACE.h"
-#include "ace/OS.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/Pipe.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/INET_Addr.h"
-#include "ace/Profile_Timer.h"
-#include "ace/Thread.h"
-#include "ace/Thread_Manager.h"
-#include "ace/Service_Config.h"
-
-#include <math.h>
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/JAWS/stress_testing/http.h b/apps/JAWS/stress_testing/http.h
deleted file mode 100644
index efce9235e56..00000000000
--- a/apps/JAWS/stress_testing/http.h
+++ /dev/null
@@ -1,16 +0,0 @@
-// $Id$
-
-#include "global.h"
-
-#define CONTENT_ENCODING_HEADER "Content-encoding: "
-#define CONTENT_TYPE_HEADER "Content-type: "
-#define INCOMING_FILE_NAME "/tmp/sumedh.web.inc"
-#define TEMPORARY_FILE_NAME "/tmp/sumedh.web.tmp"
-
-#define ENCODING_TAB "./encoding.tab"
-#define CONTENT_TAB "./content.tab"
-
-int demime(void);
-int decode(char *encoding);
-int view(char *content);
-
diff --git a/apps/JAWS/stress_testing/http_tester.cpp b/apps/JAWS/stress_testing/http_tester.cpp
deleted file mode 100644
index f5c092a9501..00000000000
--- a/apps/JAWS/stress_testing/http_tester.cpp
+++ /dev/null
@@ -1,169 +0,0 @@
-// $Id$
-
-#include "client.h"
-
-int Client_Parameters::tcp_nodelay;
-int Client_Parameters::sockbufsiz;
-Stats *Client_Parameters::stats;
-
-static void *
-client_thread(void *data)
-{
- Client_Parameters *cp = (Client_Parameters *) data;
- float latency = 0, throughput;
- URL *u = cp->url;
-
- // Check for presence of protocol, hostname and filename.
-
- if(!(u->get_protocol() && u->get_hostname() && u->get_filename())) {
- cerr << "Invalid URL" << endl;
- return NULL;
- }
-
- cp->stats->i_have_started(cp->id);
-
- // Attempt connection
- connection webserver;
-
- if(webserver.connect(u->get_hostname(), cp->tcp_nodelay, cp->sockbufsiz)) return NULL;
- // Send the request now.
-
-
- char request[BUFSIZ];
-
- ACE_Profile_Timer throughput_timer, latency_timer;
- throughput_timer.start();
- latency_timer.start();
- ACE_OS::sprintf(request,"GET /%s HTTP/1.0\r\n\r\n",u->get_filename());
- webserver.write_n(request, strlen(request)) ;
-
- char buffer[BUFSIZ];
- ssize_t num_read = 0, total_read = 0;
- unsigned int first_time = 1;
- for(;;) {
- num_read = webserver.read(buffer, sizeof buffer);
- if(first_time) {
- ACE_Profile_Timer::ACE_Elapsed_Time et;
- latency_timer.stop();
- latency_timer.elapsed_time(et);
- latency = et.real_time;
- first_time = 0;
- }
- if(num_read <= 0)
- break;
- total_read += num_read;
- }
- cp->stats->i_am_done(cp->id);
- ACE_Profile_Timer::ACE_Elapsed_Time et;
- throughput_timer.stop();
- throughput_timer.elapsed_time(et);
- throughput = (8 * total_read/et.real_time) / (1000 * 1000); //pow(10,6) ;
- cp->stats->log(cp->id, throughput, latency);
- webserver.close();
- return NULL;
-}
-
-int driver(char *id, int total_num, float requests_sec, char *url1, float p1, char *url2, float p2, char *url3, float p3, int tcp_nodelay, int sockbufsiz) {
-
- // construct the client parameters packet
-
- Client_Parameters::tcp_nodelay = tcp_nodelay;
- Client_Parameters::sockbufsiz = sockbufsiz;
-
- Client_Parameters::stats = new Stats(total_num);
-
- int missed_deadlines = 0;
- // sleep_time is in microseconds, and requests_sec is per second, hence the pow(10,6)
- float sleep_time = (1/requests_sec) * (1000 * 1000); // pow(10,6);
- float delta = 0;
- srand(time(NULL));
- for(int i = 0; i < total_num; i++) { // i is used as a id for threads
- ACE_Profile_Timer timer;
- if(sleep_time < delta)
- {
- // cerr << "Requested rate is too high, sleep_time == " << sleep_time << ", and delta = " << delta << ", after " << i << " iterations! " << endl;
- missed_deadlines++;
- }
- else
- {
- ACE_Time_Value tv(0, (long int) (sleep_time - delta));
- ACE_OS::sleep(tv);
- timer.start();
- }
- Client_Parameters *cp = new Client_Parameters(i);
-
- double r = ((double)rand()/(double)RAND_MAX);
- // cerr << " choosing between " << url1 << url2 << url3 << " with r == " << r;
- if(r <= p1) cp->url = new URL(url1);
- if( (r > p1) && (r <= (p1 + p2))) cp->url = new URL(url2);
- if( (r > (p1 + p2)) && (r <= p1 + p2 + p3)) cp->url = new URL(url3);
- // cerr << "The URL being requested is " << cp->url->get_filename() << endl;
-
-
- (ACE_Thread_Manager::instance ())->spawn(client_thread, (void *) cp);
- timer.stop();
- ACE_Profile_Timer::ACE_Elapsed_Time et;
- timer.elapsed_time(et);
- delta = ( (0.4 * fabs(et.real_time * (1000 * 1000))) + (0.6 * delta) ); // pow(10,6)
- }
-
- // Join the other threads..
- (ACE_Thread_Manager::instance ())->wait();
- // Now output the data for this test
- cout << id;
- Client_Parameters::stats->output();
- cout << endl;
- if (missed_deadlines != 0)
- {
- cout << "missed deadlines " << missed_deadlines << endl;
- cout << "missed deadlines as a % of total requests: " << (float) missed_deadlines / total_num * 100 << endl;
- }
- return 0;
-}
-
-
-main(int argc, char **argv)
-{
- // This will set the global scale factor if the ACE_SCALE_FACTOR
- // environment variable is set.
- ACE_High_Res_Timer::get_env_global_scale_factor ();
-
- if(argc < 3) {
- cerr << "Usage: " << argv[0] << " infile outfile " << endl;
- cerr << "The input file contains lines, with the following fields: " << endl;
- cerr << "experiment_id total_number_of_requests request_rate url1 p1 url2 p2 url3 p3 TCP_NODELAY SOCKET_RECV_BUFSIZ " << endl;
-
- return 1;
- }
-
- FILE *fp = fopen(argv[1],"r");
- if(fp == NULL) {
- perror("fopen");
- return 2;
- }
- close(1);
- int fd = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, 0644);
- if(fd == -1) {
- perror("open");
- return 3;
- }
-
-
- int total_num, tcp, sock;
- char *id = new char[BUFSIZ];
- float rate, p1, p2, p3;
- char *url1 = new char[BUFSIZ];
- char *url2 = new char[BUFSIZ];
- char *url3 = new char[BUFSIZ];
-
-
- while(!feof(fp)) {
- fscanf(fp,"%s %d %f %s %f %s %f %s %f %d %d\n", id, &total_num, &rate, url1, &p1, url2, &p2, url3, &p3, &tcp, &sock);
- fprintf(stderr,"----\n");
- fprintf(stderr,"\tNow performing experiment:%s\n\tSending %d requests at %f requests/second\n", id, total_num, rate);
- driver(id, total_num, rate, url1, p1, url2, p2, url3, p3, tcp, sock);
- }
- fclose(fp);
- close(fd);
- return 0;
-}
diff --git a/apps/JAWS/stress_testing/out b/apps/JAWS/stress_testing/out
deleted file mode 100644
index c237b7f38bc..00000000000
--- a/apps/JAWS/stress_testing/out
+++ /dev/null
@@ -1,2 +0,0 @@
-1.0 0.47895 0.00859167 1
-2.0 0.562603 0.00185976 1
diff --git a/apps/JAWS/stress_testing/stats.cpp b/apps/JAWS/stress_testing/stats.cpp
deleted file mode 100644
index dc2c8e03a25..00000000000
--- a/apps/JAWS/stress_testing/stats.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-// $Id$
-
-#include "stats.h"
-
-
-Stats::Stats(int size) {
- throughput_ = new float[size];
- latency_ = new float[size];
- thread_count_ = size;
- init_fini_ = new Init_Fini_t[2*size];
- for(int i = 0; i < size; i++)
- throughput_[i] = latency_[i] = 0;
-}
-
-void Stats::log(int id, float throughput, float latency) {
- throughput_[id] = throughput;
- latency_[id] = latency;
-}
-
-// Unused for now.
-void Stats::print(char *message) {
-
- ACE_UNUSED_ARG (message);
-
- // char time_buf[64];
- // long ltime;
- // time(&ltime);
-
- // ACE_OS::ctime_r(&ltime, time_buf, sizeof time_buf);
-
- // if(ACE_OS::gettimeofday() == -1) {
- // perror("gettimeofday");
- // }
- // time_buf[strlen(time_buf)-1] = 0;
- // printf("%010ld%09ld \t %s %s\n", tp.tv_sec, tp.tv_usec, time_buf, message);
-}
-
-
-int comp(const void *a, const void *b) {
-
- Init_Fini_t *A = (Init_Fini_t *)a;
- Init_Fini_t *B = (Init_Fini_t *)b;
-
- return (A->timestamp < B->timestamp) ? -1 : (A->timestamp > B->timestamp);
-}
-
-
-void Stats::output() {
- int i;
- float tavg = 0, lavg = 0;
-
- qsort(init_fini_, 2*thread_count_, sizeof(Init_Fini_t), comp);
-
- int max = 0,thread_peak = 0;
-
- for(i = 0; i < 2*thread_count_; i++) {
- // cerr << " " << ((init_fini_[i].type == THREAD_START) ? "START": "END") << " " << init_fini_[i].timestamp.sec() << "." << init_fini_[i].timestamp.usec() << endl;
- if(init_fini_[i].type == THREAD_START) {
- if(++thread_peak > max)
- max = thread_peak;
- }
- else thread_peak--;
- }
- for(i = 0; i < thread_count_; i++) {
- tavg += throughput_[i];
- lavg += latency_[i];
- }
- cout << " " << tavg/thread_count_ << " " << lavg/thread_count_ << " " << max;
-}
-
-
-void Stats::i_have_started(int id) {
-
- init_fini_[2*id].type = THREAD_START;
- init_fini_[2*id].timestamp = ACE_OS::gettimeofday();
-
-}
-
-void Stats::i_am_done(int id) {
-
- init_fini_[(2*id)+1].type = THREAD_END;
-
- init_fini_[(2*id)+1].timestamp = ACE_OS::gettimeofday();
-
-}
-
-
diff --git a/apps/JAWS/stress_testing/stats.h b/apps/JAWS/stress_testing/stats.h
deleted file mode 100644
index b5ef4a4f4a0..00000000000
--- a/apps/JAWS/stress_testing/stats.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// $Id$
-
-#include "global.h"
-
-#ifndef _D_Stats
-#define _D_Stats
-
-#define THREAD_START 42
-#define THREAD_END 43
-
-class Init_Fini_t {
-public:
- int type; // 0 is start, 1 is end
- ACE_Time_Value timestamp;
-};
-
-class Stats {
-public:
- Stats(int);
- void log(int, float, float);
- void i_have_started(int);
- void i_am_done(int);
- void print (char *);
- void output();
-private:
- float *throughput_;
- float *latency_;
- Init_Fini_t *init_fini_; // Array (2n deep) to count peak no. of active threads
- int thread_count_;
-};
-#endif
diff --git a/apps/JAWS/stress_testing/util.cpp b/apps/JAWS/stress_testing/util.cpp
deleted file mode 100644
index 053e5fff56f..00000000000
--- a/apps/JAWS/stress_testing/util.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// $Id$
-
-#include "util.h"
-
-
-
-URL::URL(char *input_buf) {
-
- char *buffer = new char[BUFSIZ];
-
- ACE_OS::strcpy(buffer,input_buf);
- if(buffer == NULL)
- return;
-
- char *temp;
- char *lasts;
-
- if((temp = ACE_OS::strtok_r(buffer,": ",&lasts))) {
- protocol_ = (char *) ACE_OS::malloc(strlen(temp) + 1);
- ACE_OS::strcpy(protocol_, temp);
- }
-
- if((temp = ACE_OS::strtok_r(NULL,"/",&lasts))) {
- hostname_ = (char *) ACE_OS::malloc(strlen(temp) + 1);
- ACE_OS::strcpy(hostname_, temp);
- }
- if((temp = ACE_OS::strtok_r(NULL,"\0",&lasts))) {
- filename_ = (char *) malloc(strlen(temp) + 1);
- ACE_OS::strcpy(filename_, temp);
- }
- else {
- filename_ = (char *) malloc(strlen(INDEX_NAME) + 1);
- ACE_OS::strcpy(filename_,INDEX_NAME);
- }
-}
-
-char *URL::get_protocol(void) {
- return protocol_;
-}
-
-char *URL::get_hostname(void) {
- return hostname_;
-}
-
-char *URL::get_filename(void) {
- return filename_;
-}
-
-
-
-
-
-void cleanup(void) {
- unlink(TEMPORARY_FILE_NAME);
- unlink(INCOMING_FILE_NAME);
-}
-
-void sigint(int) {
- cleanup();
-}
diff --git a/apps/JAWS/stress_testing/util.h b/apps/JAWS/stress_testing/util.h
deleted file mode 100644
index 875a8cd80e0..00000000000
--- a/apps/JAWS/stress_testing/util.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// $Id$
-
-#include "connection.h"
-
-#ifndef _D_URL
-#define _D_URL
-class URL {
-
-public:
-
- URL(char *buffer);
-
- char *get_protocol();
- char *get_hostname();
- char *get_filename();
-
-private:
- char *protocol_;
- char *hostname_;
- char *filename_;
-};
-
-void cleanup(void);
-void sigint(int);
-int copier(connection in);
-
-#define INDEX_NAME "/index.html"
-#define INCOMING_FILE_NAME "/tmp/sumedh.web.inc"
-#define TEMPORARY_FILE_NAME "/tmp/sumedh.web.tmp"
-#endif
-
-
-
-
diff --git a/apps/Makefile b/apps/Makefile
deleted file mode 100644
index 78c3a72e806..00000000000
--- a/apps/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the apps directory
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = Gateway \
- JAWS
-
-# The following directories aren't compiled by default since haven't
-# finished integrating it into ACE...
-#
-# Orbix-Examples
-# gperf
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
-
diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp b/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp
deleted file mode 100644
index 6b8f6339c5a..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-#include "Input_Handler.h"
-// $Id$
-
-#include "Notification_Receiver_Handler.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-Input_Handler::~Input_Handler (void)
-{
- ACE_DEBUG ((LM_DEBUG, "closing down Input_Handler::~Input_Handler\n"));
- this->handle_close ();
-}
-
-int
-Input_Handler::consumer_initiated_shutdown (void)
-{
- return this->consumer_initiated_shutdown_;
-}
-
-void
-Input_Handler::consumer_initiated_shutdown (int c)
-{
- this->consumer_initiated_shutdown_ = c;
-}
-
-ACE_HANDLE
-Input_Handler::get_handle (void) const
-{
- return this->handle_;
-}
-
-int
-Input_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_DEBUG ((LM_DEBUG, "closing down Consumer::Input_Handler\n"));
-
- Event_Comm::Notification_Receiver *receiver = this->receiver_handler_->receiver ();
- Event_Comm::Notifier *notifier = this->receiver_handler_->notifier ();
-
- if (this->consumer_initiated_shutdown ())
- {
- // Only try to unsubscribe if the Consumer initiated the
- // shutdown. Otherwise, the Supplier initiated it and
- // it has probably gone away by now!
- TRY {
- // Gracefully shutdown the Receiver by removing it
- // from the Notifier's internal map.
-
- notifier->unsubscribe (receiver, "", IT_X);
- } CATCHANY {
- cerr << IT_X << endl;
- } ENDTRY;
- }
- // Don't execute a callback here otherwise we'll recurse indefinitely!
- if (ACE_Reactor::instance ()->remove_handler
- (this, ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "remove_handler"));
-
- // *Must* be allocated dyanmically!
- delete (void *) this;
- return 0;
-}
-
-Input_Handler::Input_Handler (Notification_Receiver_Handler *ch,
- ACE_HANDLE handle)
- : receiver_handler_ (ch),
- handle_ (handle),
- consumer_initiated_shutdown_ (0)
-{
- if (ACE_Reactor::instance ()->register_handler
- (this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR ((LM_ERROR, "Input_Handler::Input_Handler\n"));
-}
-
-int
-Input_Handler::handle_input (ACE_HANDLE h)
-{
- char buf[BUFSIZ];
- ssize_t n;
-
- // Read up to BUFSIZ worth of data from ACE_HANDLE h.
-
- n = ACE_OS::read (h, buf, sizeof buf - 1);
-
- if (n > 0)
- {
- // Null terminate the buffer, replacing the '\n' with '\0'.
- if (buf[n - 1] == '\n' || buf[n - 1] == EOF)
- buf[n - 1] = '\0';
- else
- buf[n] = '\0';
- ACE_DEBUG ((LM_DEBUG, "notifying for event %s\n", buf));
-
- }
- else
- {
- ACE_OS::strcpy (buf, "quit");
- ACE_DEBUG ((LM_DEBUG, "shutting down Input_Handler\n"));
- }
-
- Event_Comm::Notifier *notifier = this->receiver_handler_->notifier ();
-
- ACE_ASSERT (notifier != 0);
-
- if (ACE_OS::strcmp (buf, "quit") == 0)
- {
- // Consumer wants to shutdown.
- this->consumer_initiated_shutdown (1);
-
- // Tell the main event loop to shutdown.
- ACE_Reactor::end_event_loop();
- }
- else
- {
- TRY {
- Event_Comm::Notification notification;
-
- notification.tag_ = ACE_OS::strdup (buf);
-
- notifier->send_notification (notification, IT_X);
- }
- CATCHANY {
- cerr << "Unexpected exception " << IT_X << endl;
- } ENDTRY;
- }
-
- /* NOTREACHED */
- return 0;
-}
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h b/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h
deleted file mode 100644
index a6993ac1a23..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Input_Handler.h
-//
-// = DESCRIPTION
-// Subclass of ACE ACE_Service_Object that receives unsubscribes from
-// the Notifier when input is received from the keyboard.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#if !defined (_INPUT_HANDLER_H)
-#define _INPUT_HANDLER_
-
-#include "ace/Service_Config.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-// Forward declaration.
-class Notification_Receiver_Handler;
-
-class Input_Handler : public ACE_Service_Object
- // = TITLE
- // Handles input events generated from a keyboard.
- //
- // = DESCRIPTION
-{
-public:
- Input_Handler (Notification_Receiver_Handler *, ACE_HANDLE h = 0);
-
- virtual int handle_input (ACE_HANDLE);
- // Dispatch the callback when events occur.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::NULL_MASK);
- // Close down the handler.
-
- int consumer_initiated_shutdown (void);
- // Report whether the Consumer initiated the shutdown.
-
- void consumer_initiated_shutdown (int);
- // Indicate that the Consumer initiated the shutdown.
-
-private:
- ~Input_Handler (void);
- // Ensure dynamic allocation.
-
- virtual ACE_HANDLE get_handle (void) const;
-
- ACE_HANDLE handle_;
- // ACE_HANDLE where the input comes from.
-
- Notification_Receiver_Handler *receiver_handler_;
- // Pointer to the <Notification_Receiver_Handler> that
- // receives notifications from the <Event_Comm::Notifier>.
-
- int consumer_initiated_shutdown_;
- // Keep track of whether the Consumer initiated the shutdown.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _INPUT_HANDLER_H */
diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Makefile b/apps/Orbix-Examples/Event_Comm/Consumer/Makefile
deleted file mode 100644
index 4e7357d4517..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/Makefile
+++ /dev/null
@@ -1,163 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Consumer.
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = consumer
-
-FILES = Notification_Receiver_Handler \
- Input_Handler
-
-LSRC = $(addsuffix .cpp,$(FILES)) consumer.cpp
-LOBJ = $(addsuffix .o,$(FILES))
-SHOBJ = $(addsuffix .so,$(FILES))
-
-LDLIBS = $(addprefix $(VSHDIR),$(LOBJ)) ../libsrc/libEvent_Comm.a
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-BUILD = $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-CPPFLAGS += -I../include
-VLDLIBS += -lgen
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-Notification_Receiver_Handler.o: Notification_Receiver_Handler.cpp \
- Notification_Receiver_Handler.h \
- ${ACE_ROOT}ace/CORBA_Handler.h \
- ${ACE_ROOT}ace/Service_Config.h \
- ${ACE_ROOT}ace/Reactor.h \
- ${ACE_ROOT}ace/Handle_Set.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Handle_Set.i \
- ${ACE_ROOT}ace/Timer_Queue.h \
- ${ACE_ROOT}ace/Event_Handler.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Timer_Queue.i \
- ${ACE_ROOT}ace/Signal.h \
- ${ACE_ROOT}ace/Set.h \
- ${ACE_ROOT}ace/Thread.h \
- ${ACE_ROOT}ace/Token.h \
- ${ACE_ROOT}ace/Reactor.i \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- ${ACE_ROOT}ace/Service_Object.h \
- ${ACE_ROOT}ace/Shared_Object.h \
- ${ACE_ROOT}ace/Service_Types.h \
- ${ACE_ROOT}ace/Thread_Manager.h \
- ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \
- ../include/Notifier_i.h \
- ${ACE_ROOT}ace/Map_Manager.h \
- ${ACE_ROOT}ace/SString.h \
- ${ACE_ROOT}ace/SString.i \
- ../include/Event_Comm.hh
-Input_Handler.o: Input_Handler.cpp Input_Handler.h \
- ${ACE_ROOT}ace/Service_Config.h \
- ${ACE_ROOT}ace/Reactor.h \
- ${ACE_ROOT}ace/Handle_Set.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Handle_Set.i \
- ${ACE_ROOT}ace/Timer_Queue.h \
- ${ACE_ROOT}ace/Event_Handler.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Timer_Queue.i \
- ${ACE_ROOT}ace/Signal.h \
- ${ACE_ROOT}ace/Set.h \
- ${ACE_ROOT}ace/Thread.h \
- ${ACE_ROOT}ace/Token.h \
- ${ACE_ROOT}ace/Reactor.i \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- ${ACE_ROOT}ace/Service_Object.h \
- ${ACE_ROOT}ace/Shared_Object.h \
- ${ACE_ROOT}ace/Service_Types.h \
- ${ACE_ROOT}ace/Thread_Manager.h \
- Notification_Receiver_Handler.h \
- ${ACE_ROOT}ace/CORBA_Handler.h \
- ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \
- ../include/Notifier_i.h \
- ${ACE_ROOT}ace/Map_Manager.h \
- ${ACE_ROOT}ace/SString.h \
- ${ACE_ROOT}ace/SString.i \
- ../include/Event_Comm.hh
-consumer.o: consumer.cpp \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- Notification_Receiver_Handler.h \
- ${ACE_ROOT}ace/CORBA_Handler.h \
- ${ACE_ROOT}ace/Service_Config.h \
- ${ACE_ROOT}ace/Reactor.h \
- ${ACE_ROOT}ace/Handle_Set.h \
- ${ACE_ROOT}ace/Handle_Set.i \
- ${ACE_ROOT}ace/Timer_Queue.h \
- ${ACE_ROOT}ace/Event_Handler.h \
- ${ACE_ROOT}ace/Timer_Queue.i \
- ${ACE_ROOT}ace/Signal.h \
- ${ACE_ROOT}ace/Set.h \
- ${ACE_ROOT}ace/Thread.h \
- ${ACE_ROOT}ace/Token.h \
- ${ACE_ROOT}ace/Reactor.i \
- ${ACE_ROOT}ace/Service_Object.h \
- ${ACE_ROOT}ace/Shared_Object.h \
- ${ACE_ROOT}ace/Service_Types.h \
- ${ACE_ROOT}ace/Thread_Manager.h \
- ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \
- ../include/Notifier_i.h \
- ${ACE_ROOT}ace/Map_Manager.h \
- ${ACE_ROOT}ace/SString.h \
- ${ACE_ROOT}ace/SString.i \
- ../include/Event_Comm.hh Input_Handler.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp b/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp
deleted file mode 100644
index 2574aff6e65..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// $Id$
-
-#include "Notification_Receiver_Handler.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-#if defined (ACE_HAS_MT_ORBIX) && (ACE_HAS_MT_ORBIX != 0)
-typedef ACE_MT_CORBA_Handler CORBA_HANDLER;
-#else
-typedef ACE_ST_CORBA_Handler CORBA_HANDLER;
-#endif /* ACE_HAS_MT_ORBIX */
-
-int
-Notification_Receiver_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
-// ACE_ST_CORBA_Handler::remove_service (Event_Comm_Notification_Receiver_IMPL);
-
- if (this->receiver_ != 0)
- {
- ACE_DEBUG ((LM_DEBUG, "closing down Notification_Receiver_Handler\n"));
- CORBA_HANDLER::instance ()->deactivate_service (Event_Comm_Notification_Receiver_IMPL,
- this->receiver_->_marker ());
- CORBA::release (this->receiver_);
- this->receiver_ = 0;
- CORBA::release (this->notifier_);
- this->notifier_ = 0;
- // *Must* be allocated dynamically in order to delete this!
- delete this;
- }
- return 0;
-}
-
-Notification_Receiver_Handler::Notification_Receiver_Handler (int argc, char *argv[])
- : notifier_ (0),
- receiver_ (0)
-{
- const char *server_name = Event_Comm_Notification_Receiver_IMPL;
- char buf[BUFSIZ];
- char *receiver_marker = buf;
- char *filtering_criteria;
- char *host;
- char *notifier_marker;
- char *service_location = argv[0];
-
- // First see if we have any environment variables.
- filtering_criteria = ACE_OS::getenv ("FILTERING_CRITERIA");
- host = ACE_OS::getenv ("HOST");
- notifier_marker = ACE_OS::getenv ("NOTIFIER_MARKER");
-
- // Then override these variables with command-line arguments.
- filtering_criteria = argc > 1 ? argv[1] : "";
- host = argc > 2 ? argv[2] : "tango.cs";
- notifier_marker = argc > 3 ? argv[3] : "notifier:" Event_Comm_Notifier_IR;
-
- CORBA::Orbix.setDiagnostics (0);
-
- struct utsname name;
-
- // Make the marker name be the "/hostname/processid"
- ACE_OS::uname (&name);
- sprintf (buf, "/%s/%d", name.nodename, ACE_OS::getpid ());
-
- CORBA_HANDLER::instance ()->activate_service (Event_Comm_Notification_Receiver_IMPL,
- receiver_marker, service_location);
-
- // Create the receiver object.
- this->receiver_ = new TIE_Event_Comm_Notification_Receiver (Notification_Receiver_i)
- (new Notification_Receiver_i);
-
- this->receiver_->_marker (receiver_marker);
-
- ACE_ASSERT (this->receiver_);
-
- TRY {
- // Get a binding to the notifier.
- this->notifier_ = Event_Comm::Notifier::_bind (notifier_marker, host, IT_X);
-
- if (this->notifier_ != CORBA::OBJECT_NIL)
- // Subscribe ourselves with the notifier's broker.
- this->notifier_->subscribe (this->receiver_,
- filtering_criteria, IT_X);
- } CATCHANY {
- cerr << "Unexpected exception " << IT_X << endl;
- ACE_OS::exit (1);
- } ENDTRY;
- // Print out context.
-
- receiver_marker = (char *) this->receiver_->_marker ();
- CORBA::BOA::activationMode mode = CORBA::Orbix.myActivationMode ();
- ACE_DEBUG ((LM_DEBUG, "starting up a %spersistent server in mode %d with marker name %s\n",
- mode == CORBA::BOA::persistentActivationMode ? "" : "non-",
- mode, receiver_marker));
-}
-
-Event_Comm::Notification_Receiver *
-Notification_Receiver_Handler::receiver (void)
-{
- return this->receiver_;
-}
-
-Event_Comm::Notifier *
-Notification_Receiver_Handler::notifier (void)
-{
- return this->notifier_;
-}
-
-// Destroy a Receiver target object.
-
-Notification_Receiver_Handler::~Notification_Receiver_Handler (void)
-{
- this->handle_close (-1, ACE_Event_Handler::ALL_EVENTS_MASK);
-}
-
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h b/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h
deleted file mode 100644
index 9d82c1eafc2..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notifier_Receiver_Handler.h
-//
-// = DESCRIPTION
-// Subclass of Corba_Handler that sets up the Notification_Receiver handler
-// for use with the ACE ACE_Reactor.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#if !defined (_NOTIFICATION_RECEIVER_HANDLER_H)
-#define _NOTIFICATION_RECEIVER_HANDLER_H
-
-#include "ace/CORBA_Handler.h"
-#include "Event_Comm_i.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-class Notification_Receiver_Handler
- // = TITLE
- // Subclass of Corba_Handler that sets up the Notification Receiver handler
- // for use with the ACE ACE_Reactor.
- //
- // = DESCRIPTION
- // Note that this class doesn't inherit from ACE_ST_CORBA_Handler (unlike
- // the Supplier's Notifier_Handler class). Instead, it uses an
- // alternative interface that can be called directly.
-{
-public:
- Notification_Receiver_Handler (int argc, char *argv[]);
-
- Event_Comm::Notification_Receiver *receiver (void);
- Event_Comm::Notifier *notifier (void);
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::NULL_MASK);
- // Close down the handler.
-
-private:
- ~Notification_Receiver_Handler (void);
- // Ensure dynamic allocation.
-
- Event_Comm::Notification_Receiver *receiver_;
- // Pointer to an IDL <Notification_Receiver> proxy object.
-
- Event_Comm::Notifier *notifier_;
- // Pointer to an IDL <Notifier> proxy object.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _NOTIFICATION_RECEIVER_HANDLER_H */
diff --git a/apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp b/apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp
deleted file mode 100644
index 29137661ce3..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Consumer driver for the Orbix Notification example.
-
-
-#include "Notification_Receiver_Handler.h"
-#include "Input_Handler.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-class Consumer : public ACE_Event_Handler
-{
-public:
- Consumer (int argc, char *argv[]);
- ~Consumer (void);
-
- void run (void);
- // Execute the consumer;
-
-private:
- virtual int handle_signal (int signum, siginfo_t *, ucontext_t *);
-
- virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask);
-
- Input_Handler *ih_;
- // Handler for keyboard input.
-
- Notification_Receiver_Handler *nrh_;
- // Handler for CORBA Consumer.
-
- ACE_Service_Config daemon_;
- // ACE server event-loop mechanism.
-};
-
-int
-Consumer::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_DEBUG ((LM_DEBUG, "closing down Consumer\n"));
- return 0;
-}
-
-int
-Consumer::handle_signal (int signum, siginfo_t *, ucontext_t *)
-{
- ACE_DEBUG ((LM_DEBUG, "%S\n", signum));
-
- // Indicate that the consumer initiated the shutdown.
- this->ih_->consumer_initiated_shutdown (1);
-
- // Shut down the event loop.
- ACE_Reactor::end_event_loop();
- return 0;
-}
-
-// Run the event loop until someone calls
-// calls ACE_Reactor::end_event_loop().
-
-void
-Consumer::run (void)
-{
- if (ACE_Reactor::run_event_loop () == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "run_reactor_event_loop"));
-}
-
-Consumer::Consumer (int argc, char *argv[])
- : ih_ (0),
- nrh_ (0)
-{
- // Initialize the server.
- if (this->daemon_.open (argc, argv) == -1)
- {
- if (errno == ENOENT) // There's no svc.conf file, so use static linking...
- {
- ACE_DEBUG ((LM_DEBUG, "no config file, using static binding\n"));
- // The constructor registers the handlers...
- this->nrh_ = new Notification_Receiver_Handler (argc, argv);
- ACE_ASSERT (this->nrh_ != 0);
- this->ih_ = new Input_Handler (this->nrh_);
- ACE_ASSERT (this->ih_ != 0);
- }
- else
- ACE_ERROR ((LM_ERROR, "%p\n%a", "open", 1));
- }
-
- if (ACE_Reactor::instance ()->register_handler (SIGINT, this) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "register_handler"));
-}
-
-Consumer::~Consumer (void)
-{
- // Free up the handlers if they were statically bound.
- this->ih_->handle_close ();
- this->nrh_->handle_close ();
-}
-
-int
-main (int argc, char *argv[])
-{
- // Initialize the supplier and consumer object references.
- Consumer consumer (argc, argv);
-
- // Loop forever handling events.
- consumer.run ();
-
- return 0;
-}
-#else /* !defined ACE_HAS_ORBIX */
-int
-main (int argc, char *argv[])
-{
- ACE_ERROR_RETURN ((LM_ERROR, "you must have Orbix to run application %s\n", argv[0]), 1);
-}
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/Makefile b/apps/Orbix-Examples/Event_Comm/Makefile
deleted file mode 100644
index fad4487725b..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the consumer/supplier notification application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = libsrc \
- Consumer \
- Supplier
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
-
diff --git a/apps/Orbix-Examples/Event_Comm/README b/apps/Orbix-Examples/Event_Comm/README
deleted file mode 100644
index 1bd7b5d8c45..00000000000
--- a/apps/Orbix-Examples/Event_Comm/README
+++ /dev/null
@@ -1,109 +0,0 @@
-OVERVIEW
-
-This directory contains source code for a prototype CORBA-based
-distributed notification mechanism. This mechanism implements a
-"publish/subscribe" communication protocol. It allows Suppliers to
-pass messages containing object references to a dynamically managed
-group of Consumers. This is similar to the OMG COSS Event Service,
-though not as sophisticated.
-
-This example also illustrates how to integrate Orbix with the ACE
-libraries.
-
-DIRECTORY STRUCTURE
-
-There are 4 directories:
-
-Supplier
-
- -- The supplier test driver, which must be started
- first. It has an instance of an IDL Notifier
- object. This object accepts subscriptions from Consumers
- and forwards events sent to it either via Consumers or
- via its standard input.
-
- The Supplier must be registered with the ORB using the
- following command:
-
- % putit Event_Comm_Notifier <pathname>/supplier
-
-Consumer
-
- -- The consumer test driver, which must be started
- after the Supplier. It has an instance of an
- IDL Notification_Receiver object. This object is
- used to receive notifications from the Notifier object
- residing in the Supplier. When the Consumer starts up it
- gets an object reference to the Supplier's Notifier.
- It then subscribes its Notification_Receiver object with
- the Supplier's Notifier by passing an object reference.
-
- In addition to passing an object reference to a
- Notification_Receiver, the Consumer also may specify a
- filtering criteria, which is a regular expression. If
- the filtering criteria is the string "" then the Notifier
- will send all Notifications to the Consumer (i.e., "" is
- treated as a "wildcard"). Otherwise, the filtering
- criteria is considered to be a regular expression,
- and only those Notification tags that match the regular
- expression will be forwarded to the Consumer. The regular
- expressions are those used by ed(1) (see the regexp(5)
- manual page for more info).
-
- The Consumer must be registered with the ORB
- using the following command:
-
- % putit Event_Comm_Notification_Receiver <pathname>/consumer
-
-include
-
- -- This contains links to the appropriate header
- files.
-
-libsrc
-
- -- This contains the IDL files and IDL implementation
- classes that support the distributed notification scheme.
- These are shared by the Consumer and Supplier.
-
-RUNNING THE TESTS
-
-To run the tests do the following:
-
-1. Compile everything.
-
-2. Start up the Orbix daemon (orbixd) if it's not already
- running.
-
-3. Register the Consumer (i.e., Notification_Receiver) and Supplier
- (i.e., Notifier) with the Orbix daemon (orbixd), as described
- above.
-
-4. Start the Supplier/supplier executable.
-
-5. Start up as many copies of the Consumer/consumer as you'd like.
- Typically, I run each one in its own window. If you'd like to use
- different machines make sure that you start up the Orbix daemon on
- each one and register the Consumer.
-
-6. Once the Consumers have subscribed you can send them info by typing
- commands in the Supplier window. These will be sent to all the
- Consumers who have subscribed. Likewise, you can send messages
- from a Consumer to all other Consumers by typing messages in a
- Consumer window.
-
- Note that if you type "quit", ^D, or ^C in a Consumer window the
- Consumer will unsubscribe and shutdown its handlers and exit.
- Likewise, if you type "quit", ^D, or ^C in the Supplier window
- the Supplier will disconnect all of its Consumers and exit.
- When a Consumer is disconnected from its Supplier it automatically
- shuts itself down.
-
-7. When you want to terminate a Consumer or a Supplier, just type ^C
- and the process will shut down gracefully.
-
-Please let me know if there are any questions.
-
- Doug
-
-schmidt@cs.wustl.edu
diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp b/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp
deleted file mode 100644
index 164e0bc6810..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-#include "Event_Comm.hh"
-// $Id$
-
-#include "Notifier_Handler.h"
-#include "Input_Handler.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-int
-Input_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_DEBUG ((LM_DEBUG, "closing down Supplier::Input_Handler\n"));
-
- Event_Comm::Notifier *notifier = this->notifier_->notifier ();
- ACE_ASSERT (notifier != 0);
-
- ACE_OS::fclose (this->fp_);
-
- TRY {
- // Disconnect all the consumers gracefully.
- notifier->send_disconnect ("quit", IT_X);
- } CATCHANY {
- cerr << IT_X << endl;
- } ENDTRY;
-
- // Don't execute a callback here otherwise we'll recurse indefinitely!
- if (ACE_Reactor::instance ()->remove_handler
- (this, ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "remove_handler"));
-
- // *Must* be allocated dyanmically!
- delete (void *) this;
- return 0;
-}
-
-Input_Handler::Input_Handler (Notifier_Handler *notifier,
- ACE_HANDLE handle) // Use stdin by default.
- : notifier_ (notifier),
- handle_ (handle)
-{
- // Register ourselves with the ACE_Reactor so that input events
- // cause our handle_input() method to be dispatched automatically.
-
- if (ACE_Reactor::instance ()->register_handler (this,
- ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "register_handler"));
-
- this->fp_ = ACE_OS::fdopen (handle, "r");
-
- if (this->fp_ == 0)
- ACE_ERROR ((LM_ERROR, "%p\n", "fdopen"));
-}
-
-Input_Handler::~Input_Handler (void)
-{
- ACE_DEBUG ((LM_DEBUG, "closing down Input_Handler::~Input_Handler\n"));
- this->handle_close ();
-}
-
-ACE_HANDLE
-Input_Handler::get_handle (void) const
-{
- return this->handle_;
-}
-
-// Frame input events and notify <Consumers>.
-
-int
-Input_Handler::handle_input (ACE_HANDLE h)
-{
- char buf[BUFSIZ];
-
- // Read up to BUFSIZ worth of data from ACE_HANDLE h.
-
- if (ACE_OS::fgets (buf, sizeof buf - 1, this->fp_) == 0)
- {
- ACE_OS::strcpy (buf, "quit");
- ACE_DEBUG ((LM_DEBUG, "shutting down Input_Handler\n"));
- }
- else
- {
- size_t n = ACE_OS::strlen (buf);
-
- // Null terminate the buffer, replacing the '\n' with '\0'.
- if (buf[n - 1] == '\n' || buf[n - 1] == EOF)
- buf[n - 1] = '\0';
- else
- buf[n] = '\0';
- ACE_DEBUG ((LM_DEBUG, "notifying for event %s\n", buf));
- }
-
- Event_Comm::Notifier *notifier = this->notifier_->notifier ();
- ACE_ASSERT (notifier != 0);
-
- if (ACE_OS::strcmp (buf, "quit") == 0)
- // Tell the main event loop to shutdown.
- ACE_Reactor::end_event_loop();
- else
- {
- // Use the notifier to notify Consumers.
- TRY {
- Event_Comm::Notification notification;
-
- // Pass the buf over in the tag field.
- notification.tag_ = ACE_OS::strdup (buf);
-
- // This is where the "any" value goes or the object reference...
- // notification.value_ = ...
-
- // Forward <Notification> to all <Notification_Receivers>.
- notifier->send_notification (notification, IT_X);
- }
- CATCHANY {
- cerr << "unexpected exception " << IT_X << endl;
- } ENDTRY;
- }
- return 0;
-}
-
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h b/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h
deleted file mode 100644
index 5bbf12f3a8d..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Input_Handler.h
-//
-// = DESCRIPTION
-// Handle input from the keyboard.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#if !defined (_INPUT_HANDLER_H)
-#define _INPUT_HANDLER_H
-
-#include "ace/Service_Config.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-// Forward declaration.
-class Notifier_Handler;
-
-class Input_Handler : public ACE_Service_Object
- // = TITLE
- // Handles input events generated from a keyboard.
- //
- // = DESCRIPTION
- // The events are currently framed and forwarded to
- // all Consumers. In the future, we will need to
- // be more selective and only send to those Consumers
- // whose filtering criteria matches!
-{
-public:
- Input_Handler (Notifier_Handler *, ACE_HANDLE = 0); // Use stdin by default.
-
- virtual int handle_input (ACE_HANDLE);
- // Frame input events and notify <Consumers>.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::NULL_MASK);
- // Close down the handler.
-
-protected:
- virtual ACE_HANDLE get_handle (void) const;
-
- ACE_HANDLE handle_;
- // ACE_HANDLE where the input comes from.
-
- Notifier_Handler *notifier_;
- // Pointer to a <Notifier_Handler> that's used to inform
- // Consumers that events of interest have occurred.
-
- FILE *fp_;
- // Pointer to an input ACE_FILE.
-
-private:
- ~Input_Handler (void);
- // Ensure dynamic allocation.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _INPUT_HANDLER_H */
diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/Makefile b/apps/Orbix-Examples/Event_Comm/Supplier/Makefile
deleted file mode 100644
index 477a6b22e70..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/Makefile
+++ /dev/null
@@ -1,162 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Notifier.
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = supplier
-
-FILES = Input_Handler \
- Notifier_Handler
-
-LSRC = $(addsuffix .cpp,$(FILES)) supplier.cpp
-LOBJ = $(addsuffix .o,$(FILES))
-SHOBJ = $(addsuffix .so,$(FILES))
-
-LDLIBS = $(addprefix $(VSHDIR),$(LOBJ)) ../libsrc/libEvent_Comm.a
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-BUILD = $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-CPPFLAGS += -I../include
-VLDLIBS += -lgen
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-Input_Handler.o: Input_Handler.cpp ../include/Event_Comm.hh Notifier_Handler.h \
- ${ACE_ROOT}ace/CORBA_Handler.h \
- ${ACE_ROOT}ace/Service_Config.h \
- ${ACE_ROOT}ace/Reactor.h \
- ${ACE_ROOT}ace/Handle_Set.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Handle_Set.i \
- ${ACE_ROOT}ace/Timer_Queue.h \
- ${ACE_ROOT}ace/Event_Handler.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Timer_Queue.i \
- ${ACE_ROOT}ace/Signal.h \
- ${ACE_ROOT}ace/Set.h \
- ${ACE_ROOT}ace/Thread.h \
- ${ACE_ROOT}ace/Token.h \
- ${ACE_ROOT}ace/Reactor.i \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- ${ACE_ROOT}ace/Service_Object.h \
- ${ACE_ROOT}ace/Shared_Object.h \
- ${ACE_ROOT}ace/Service_Types.h \
- ${ACE_ROOT}ace/Thread_Manager.h \
- ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \
- ../include/Notifier_i.h \
- ${ACE_ROOT}ace/Map_Manager.h \
- ${ACE_ROOT}ace/SString.h \
- ${ACE_ROOT}ace/SString.i \
- Input_Handler.h
-Notifier_Handler.o: Notifier_Handler.cpp Notifier_Handler.h \
- ${ACE_ROOT}ace/CORBA_Handler.h \
- ${ACE_ROOT}ace/Service_Config.h \
- ${ACE_ROOT}ace/Reactor.h \
- ${ACE_ROOT}ace/Handle_Set.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Handle_Set.i \
- ${ACE_ROOT}ace/Timer_Queue.h \
- ${ACE_ROOT}ace/Event_Handler.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Timer_Queue.i \
- ${ACE_ROOT}ace/Signal.h \
- ${ACE_ROOT}ace/Set.h \
- ${ACE_ROOT}ace/Thread.h \
- ${ACE_ROOT}ace/Token.h \
- ${ACE_ROOT}ace/Reactor.i \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- ${ACE_ROOT}ace/Service_Object.h \
- ${ACE_ROOT}ace/Shared_Object.h \
- ${ACE_ROOT}ace/Service_Types.h \
- ${ACE_ROOT}ace/Thread_Manager.h \
- ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \
- ../include/Notifier_i.h \
- ${ACE_ROOT}ace/Map_Manager.h \
- ${ACE_ROOT}ace/SString.h \
- ${ACE_ROOT}ace/SString.i \
- ../include/Event_Comm.hh
-supplier.o: supplier.cpp \
- ${ACE_ROOT}ace/Service_Config.h \
- ${ACE_ROOT}ace/Reactor.h \
- ${ACE_ROOT}ace/Handle_Set.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Handle_Set.i \
- ${ACE_ROOT}ace/Timer_Queue.h \
- ${ACE_ROOT}ace/Event_Handler.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Timer_Queue.i \
- ${ACE_ROOT}ace/Signal.h \
- ${ACE_ROOT}ace/Set.h \
- ${ACE_ROOT}ace/Thread.h \
- ${ACE_ROOT}ace/Token.h \
- ${ACE_ROOT}ace/Reactor.i \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- ${ACE_ROOT}ace/Service_Object.h \
- ${ACE_ROOT}ace/Shared_Object.h \
- ${ACE_ROOT}ace/Service_Types.h \
- ${ACE_ROOT}ace/Thread_Manager.h \
- Notifier_Handler.h \
- ${ACE_ROOT}ace/CORBA_Handler.h \
- ../include/Event_Comm_i.h ../include/Notification_Receiver_i.h \
- ../include/Notifier_i.h \
- ${ACE_ROOT}ace/Map_Manager.h \
- ${ACE_ROOT}ace/SString.h \
- ${ACE_ROOT}ace/SString.i \
- ../include/Event_Comm.hh Input_Handler.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp b/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp
deleted file mode 100644
index d4487ae4734..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-#include "Notifier_Handler.h"
-// $Id$
-
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-#if defined (ACE_HAS_MT_ORBIX) && (ACE_HAS_MT_ORBIX != 0)
-typedef ACE_MT_CORBA_Handler CORBA_HANDLER;
-#else
-typedef ACE_ST_CORBA_Handler CORBA_HANDLER;
-#endif /* ACE_HAS_MT_ORBIX */
-
-int
-Notifier_Handler::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- if (this->notifier_ != 0)
- {
- ACE_DEBUG ((LM_DEBUG, "closing down Notifier_Handler\n"));
- CORBA_HANDLER::instance ()->deactivate_service (Event_Comm_Notifier_IMPL,
- this->notifier_->_marker ());
- CORBA::release (this->notifier_);
- this->notifier_ = 0;
- // *Must* be allocated dyanmically!
- delete this;
- }
- return 0;
-}
-
-Event_Comm::Notifier *
-Notifier_Handler::notifier (void)
-{
- return this->notifier_;
-}
-
-void
-Notifier_Handler::notifier (Event_Comm::Notifier *notifier)
-{
- if (this->notifier_ != notifier)
- {
- CORBA::release (this->notifier_);
- this->notifier_ = notifier;
- }
-}
-
-// Create and initialize a Notifier target object.
-
-Notifier_Handler::Notifier_Handler (const char *service_location,
- const char *marker,
- int putit)
-{
- CORBA_HANDLER::instance ()->activate_service (Event_Comm_Notifier_IMPL,
- putit ? marker : 0, service_location);
-
- // Create a notifier object using the implementation class Notifier_i.
- this->notifier_ =
- new TIE_Event_Comm_Notifier (Notifier_i) (new Notifier_i, marker);
-}
-
-// Destroy a Notifier target object.
-
-Notifier_Handler::~Notifier_Handler (void)
-{
- this->handle_close ();
-}
-
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h b/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h
deleted file mode 100644
index 8e3c56ca42c..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notifier_Handler.h
-//
-// = DESCRIPTION
-// Integrate CORBA with the ACE ACE_Reactor.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#if !defined (_NOTIFIER_HANDLER_H)
-#define _NOTIFIER_HANDLER_H
-
-#include "ace/CORBA_Handler.h"
-#include "Event_Comm_i.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-class Notifier_Handler
- // = TITLE
- // Integrate CORBA with the ACE ACE_Reactor.
- //
- // = DESCRIPTION
- //
-{
-public:
- Notifier_Handler (const char *service_location,
- const char *marker = "notifier",
- int putit = 1); // Default marker name.
-
- Event_Comm::Notifier *notifier (void);
- void notifier (Event_Comm::Notifier *);
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::NULL_MASK);
- // Close down the handler.
-
-private:
- ~Notifier_Handler (void);
- // Ensure dynamic allocation.
-
- Event_Comm::Notifier *notifier_;
- // Pointer to an a <Event_Comm::Notifier> object.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _NOTIFIER_HANDLER_H */
diff --git a/apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp b/apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp
deleted file mode 100644
index 2477568d636..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Supplier driver for the Orbix Publish/Subscribe example.
-
-// The executable file generated from this code should be registered
-// (under the name 'logger') using the 'putit' command.
-
-#include "ace/Service_Config.h"
-
-#include "Notifier_Handler.h"
-#include "Input_Handler.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-class Supplier : public ACE_Event_Handler
-{
-public:
- Supplier (int argc, char *argv[]);
- ~Supplier (void);
-
- void run (void);
- // Execute the supplier.
-
-private:
- virtual int handle_signal (int signum, siginfo_t *, ucontext_t *);
-
- virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask);
-
- Input_Handler *ih_;
- // Handler for keyboard input.
-
- Notifier_Handler *nh_;
- // Handler for CORBA Notifier.
-
- ACE_Service_Config daemon_;
- // ACE server event-loop mechanism.
-};
-
-int
-Supplier::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
-{
- ACE_DEBUG ((LM_DEBUG, "closing down Supplier\n"));
- return 0;
-}
-
-int
-Supplier::handle_signal (int signum, siginfo_t *, ucontext_t *)
-{
- ACE_DEBUG ((LM_DEBUG, "%S\n", signum));
- ACE_Reactor::end_event_loop();
- return 0;
-}
-
-void
-Supplier::run (void)
-{
- if (ACE_Reactor::run_event_loop () == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "run_reactor_event_loop"));
-}
-
-Supplier::Supplier (int argc, char *argv[])
- : ih_ (0),
- nh_ (0)
-{
- // Initialize the server.
- if (this->daemon_.open (argc, argv) == -1)
- {
- if (errno == ENOENT) // There's no svc.conf file, so use static linking...
- {
- ACE_DEBUG ((LM_DEBUG, "no config file, using static binding\n"));
- // The constructor registers the handlers...
- int putit = argc > 1 ? 1 : 0;
-
- // Pass in program exec name to use a service_location!
- this->nh_ = new Notifier_Handler (argv[0], "notifier", putit);
- ACE_ASSERT (this->nh_ != 0);
- this->ih_ = new Input_Handler (this->nh_);
- ACE_ASSERT (this->ih_ != 0);
- }
- else
- ACE_ERROR ((LM_ERROR, "%p\n%a", "open", 1));
- }
-
- ACE_DEBUG ((LM_DEBUG, "starting up server %s\n",
- CORBA::Orbix.myImplementationName ()));
-
- if (ACE_Reactor::instance ()->register_handler (SIGINT, this) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "register_handler"));
-}
-
-Supplier::~Supplier (void)
-{
- // Free up the handlers if they were statically bound.
- this->ih_->handle_close ();
- this->nh_->handle_close ();
-}
-
-int
-main (int argc, char *argv[])
-{
- // Initialize server daemon.
- Supplier supplier (argc, argv);
-
- // Loop forever handling events.
- supplier.run ();
-
- return 0;
-}
-#else /* !defined ACE_HAS_ORBIX */
-int
-main (int argc, char *argv[])
-{
- ACE_ERROR_RETURN ((LM_ERROR, "you must have Orbix to run application %s\n", argv[0]), 1);
-}
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh b/apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh
deleted file mode 100644
index 85ad256da2a..00000000000
--- a/apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh
+++ /dev/null
@@ -1,887 +0,0 @@
-
-#ifndef Event_Comm_hh
-#define Event_Comm_hh
-
-#include <CORBA.h>
-
-#include <string.h>
-
-class Event_Comm {
-public:
-
-#ifndef Event_Comm_Notification_defined
-#define Event_Comm_Notification_defined
-
- struct Notification {
- CORBA::String_mgr tag_;
-
- void encodeOp (CORBA::Request &IT_r) const;
- void decodeOp (CORBA::Request &IT_r);
- void decodeInOutOp (CORBA::Request &IT_r);
- static void* IT_anySupport (CORBA::Request &IT_r,
- void *&, void*, const CORBA::Flags&);
- static const void *IT_fn;
- };
-
- static const CORBA::TypeCode_ptr _tc_Notification;
-
-#ifndef Event_Comm_NotificationVarH
-#define Event_Comm_NotificationVarH
-
-#ifndef Event_Comm_NotificationvPtr
-#define Event_Comm_NotificationvPtr
-typedef Notification* Notification_vPtr;
-#endif
-
-class Notification_var : public CORBA::_var
-{
- public:
-
- Notification_var () {
- _ptr = NULL;
- }
-
- Notification_var (Notification *IT_p) {
- _ptr = IT_p;
- }
-
- Notification_var (const Notification_var &IT_s) {
- if (!IT_s._ptr) {
- _ptr = IT_s._ptr;
- return;
- }
- _ptr = new Notification (*(IT_s._ptr));
- }
-
- Notification_var &operator= (Notification *IT_p) {
- if (_ptr != IT_p) {
- delete _ptr;
- }
- _ptr = IT_p;
- return (*this);
- }
-
- Notification_var &operator= (const Notification_var &IT_s) {
- if (_ptr != IT_s._ptr) {
- delete _ptr;
- }
- _ptr = new Notification (*(IT_s._ptr));
- return (*this);
- }
-
- ~Notification_var () {
- delete _ptr;
- }
-
- Notification* operator-> () {
- return _ptr;
- }
-
- operator const Notification_vPtr () const { return _ptr;}
- operator Notification_vPtr& () { return _ptr;}
- operator Notification& () const { return * _ptr;}
-
- protected:
- Notification *_ptr;
- private:
- Notification_var &operator= (const CORBA::_var &IT_s);
- Notification_var (const CORBA::_var &IT_s);
-};
-
-#endif
-
-
-#endif
-
-
-#ifndef _Event_Comm_Notification_Receiver_defined
-#define _Event_Comm_Notification_Receiver_defined
-class Notification_Receiver_dispatch : public virtual CORBA::PPTR {
-public:
-
- Notification_Receiver_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m,
- CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {}
-
-
- Notification_Receiver_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notification_Receiver_dispatch () {}
-
- Notification_Receiver_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notification_Receiver_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m,
- char *IT_i, CORBA::Object* IT_ob, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {}
-
-
- virtual unsigned char dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void* IT_pp=NULL);
-
-
-};
-
-class Notification_Receiver;
-
-#ifndef Event_Comm_Notification_ReceiverPtr
-#define Event_Comm_Notification_ReceiverPtr
-
- typedef Notification_Receiver* Notification_Receiver_ptr;
-
- typedef Notification_Receiver* Notification_ReceiverRef;
-
-#endif
-
-
-#ifndef Event_Comm_Notification_ReceiverForwH
-#define Event_Comm_Notification_ReceiverForwH
-static CORBA::ObjectRef Notification_Receiver_getBase (void *);
-static void Notification_Receiver_release (Notification_Receiver *, CORBA::Environment &IT_env);
-static void Notification_Receiver_release (Notification_Receiver_ptr);
-static Notification_Receiver* Notification_Receiver_duplicate (Notification_Receiver_ptr, CORBA::Environment &IT_env);
-static Notification_Receiver* Notification_Receiver_duplicate (Notification_Receiver_ptr );
-static Notification_Receiver_ptr Notification_Receiver_nil (CORBA::Environment &IT_env);
-static Notification_Receiver_ptr Notification_Receiver_nil ();
-#endif
-#define Event_Comm_Notification_Receiver_IMPL "Event_Comm_Notification_Receiver"
-
-
-class Notification_Receiver;
-
- typedef Notification_Receiver Notification_ReceiverProxy;
-#define Event_Comm_Notification_Receiver_IR "Event_Comm_Notification_Receiver"
-#define Event_Comm_Notification_Receiver_IMPL "Event_Comm_Notification_Receiver"
-
-#ifndef Event_Comm_Notification_ReceiverPtr
-#define Event_Comm_Notification_ReceiverPtr
-
- typedef Notification_Receiver* Notification_Receiver_ptr;
-
- typedef Notification_Receiver* Notification_ReceiverRef;
-
-#endif
-
-class Notification_Receiver: public virtual CORBA::Object {
-public:
- Notification_Receiver (char *IT_OR);
- Notification_Receiver (ObjectReference *IT_OR);
- Notification_Receiver () : CORBA::Object (1) {}
-protected:
- Notification_Receiver_ptr __duplicate(
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::Object::__duplicate (IT_env);
- return this;
- }
-public:
- static Notification_Receiver_ptr _duplicate(
- Notification_Receiver_ptr obj,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- if (CORBA::is_nil(obj, IT_env)) {
- IT_raise.maybeRaise ();
- return (obj);
- }
- Notification_Receiver_ptr IT_obj = obj->__duplicate (IT_env);
- IT_raise.maybeRaise();
- return IT_obj;
- }
-public:
- static Notification_Receiver* _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notification_Receiver* _bind (CORBA::Environment &IT_env);
- static Notification_Receiver* _bind (const char* IT_markerServer=NULL, const char* host=NULL,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notification_Receiver* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notification_Receiver_ptr _nil (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- IT_raise.maybeRaise();
- return (Notification_Receiver_ptr) CORBA::OBJECT_NIL;}
- virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void disconnect (const char * reason, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
-};
-
- static const CORBA::TypeCode_ptr _tc_Notification_Receiver;
-
- static const CORBA::TypeCode_ptr _tc_Notification_ReceiverRef;
-
-#ifndef Event_Comm_Notification_ReceiverVarH
-#define Event_Comm_Notification_ReceiverVarH
-
-#ifndef Event_Comm_Notification_ReceivervPtr
-#define Event_Comm_Notification_ReceivervPtr
-typedef Notification_Receiver* Notification_Receiver_vPtr;
-#endif
-
-class Notification_Receiver_var : public CORBA::_var
-{
- public:
-
- Notification_Receiver_var () {
- _ptr = Notification_Receiver_nil ();
- }
-
- Notification_Receiver_var (Notification_Receiver *IT_p) {
- _ptr = IT_p;
- }
-
- Notification_Receiver_var (const Notification_Receiver_var &IT_s) {
- _ptr = Notification_Receiver_duplicate (IT_s._ptr);
- }
-
- Notification_Receiver_var &operator= (Notification_Receiver *IT_p) {
- Notification_Receiver_release (_ptr);
- _ptr = IT_p;
- return (*this);
- }
-
- Notification_Receiver_var &operator= (const Notification_Receiver_var &IT_s) {
- Notification_Receiver_release (_ptr);
- _ptr = Notification_Receiver_duplicate (IT_s._ptr);
- return (*this);
- }
-
- ~Notification_Receiver_var () {
- Notification_Receiver_release (_ptr);
- }
-
- Notification_Receiver* operator-> () {
- return _ptr;
- }
-
- operator const Notification_Receiver_vPtr () const { return _ptr;}
- operator Notification_Receiver_vPtr& () { return _ptr;}
-
- protected:
- Notification_Receiver *_ptr;
- private:
- Notification_Receiver_var &operator= (const CORBA::_var &IT_s);
- Notification_Receiver_var (const CORBA::_var &IT_s);
- Notification_Receiver_var &operator= (const CORBA::_mgr &IT_s);
- Notification_Receiver_var &operator= (const CORBA::_SeqElem &IT_s);
- Notification_Receiver_var (const CORBA::_mgr &IT_s);
- Notification_Receiver_var (const CORBA::_SeqElem &IT_s);
-};
-
-#endif
-
-
-#ifndef Event_Comm_Notification_ReceiverMgrH
-#define Event_Comm_Notification_ReceiverMgrH
-
-class Notification_Receiver_mgr : public CORBA::_mgr
-{
- public:
-
- Notification_Receiver_mgr () {
- _ptr = Notification_Receiver_nil ();
- _release = 1;
- }
-
- Notification_Receiver_mgr (const Notification_Receiver_mgr &IT_s) {
- _ptr = Notification_Receiver_duplicate (IT_s._ptr);
- _release = 1;
- }
-
- Notification_Receiver_mgr &operator= (Notification_Receiver *IT_p) {
- if (_ptr && _release)
- Notification_Receiver_release (_ptr);
- _ptr = IT_p;
- _release = 1;
- return (*this);
- }
-
- Notification_Receiver_mgr &operator= (const Notification_Receiver_mgr &IT_s) {
- if (_ptr && _release)
- Notification_Receiver_release (_ptr);
- _ptr = Notification_Receiver_duplicate(IT_s._ptr);
- _release = 1;
- return (*this);
- }
-
- Notification_Receiver_mgr &operator= (const Notification_Receiver_var &IT_s) {
- if (_ptr && _release)
- Notification_Receiver_release (_ptr);
- _ptr = Notification_Receiver_duplicate(IT_s);
- _release = 1;
- return (*this);
- }
-
- ~Notification_Receiver_mgr () {
- if (_release)
- Notification_Receiver_release (_ptr);
- }
-
- unsigned char release () {
- return _release;
- }
-
- void release (unsigned char rel) {
- _release = rel;
- }
-
- operator int () const {
- CORBA::Environment env;
- CORBA::EnvExcRaiser IT_raise (&env);
- return (!(CORBA::is_nil((CORBA::Object*) _ptr, env)));
- }
-
- operator void* () const {
- return _ptr;
- }
-
- operator CORBA::Object * () const {
- return (CORBA::Object *) _ptr;
- }
-
- operator Notification_Receiver* () const {
- return (Notification_Receiver*) _ptr;
- }
-
- Notification_Receiver *_ptr;
-
- protected:
-
- unsigned char _release;
-};
-
-#endif
-
-#ifndef Event_Comm_Notification_ReceiverSeqElemH
-#define Event_Comm_Notification_ReceiverSeqElemH
-
-class Notification_Receiver_SeqElem : public CORBA::_SeqElem
-{
- public:
-
- Notification_Receiver_SeqElem (Event_Comm::Notification_Receiver_ptr* IT_p, unsigned char rel) {
- _ptr = IT_p;
- _release = rel;
- }
-
- Notification_Receiver_SeqElem &operator= (Event_Comm::Notification_Receiver_ptr IT_p) {
- if (!_ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notification_Receiver_release (*(_ptr));
- *(_ptr) = IT_p;
- return (*this);
- }
-
- Notification_Receiver_SeqElem &operator= (const Notification_Receiver_SeqElem &IT_s) {
- if (!_ptr|| !IT_s._ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notification_Receiver_release (*(_ptr));
- *(_ptr) = Notification_Receiver_duplicate(*(IT_s._ptr));
- return (*this);
- }
-
- operator Event_Comm::Notification_Receiver_ptr () const
-{
- if (!_ptr)
- return (Notification_Receiver_nil());
- return (Event_Comm::Notification_Receiver_ptr) (*_ptr);
- }
-
- Notification_Receiver_ptr operator->() const { return *_ptr;}
-
- protected:
- Event_Comm::Notification_Receiver_ptr *_ptr;
- unsigned char _release;
-};
-
-#endif
-
-
-#define TIE_Event_Comm_Notification_Receiver(X) Event_Comm_Notification_Receiver##X
-
-#define DEF_TIE_Event_Comm_Notification_Receiver(X) \
- class Event_Comm_Notification_Receiver##X : public virtual Event_Comm::Notification_Receiver { \
- X* m_obj; \
- public: \
- \
- Event_Comm_Notification_Receiver##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\
- : Event_Comm::Notification_Receiver(), CORBA::Object (), m_obj(objp) { \
- m_pptr = new Event_Comm::Notification_Receiver_dispatch \
- (( Event_Comm::Notification_Receiver*)this,(CORBA::Object*)this,m,l,Event_Comm_Notification_Receiver_IR,m_obj); \
- } \
- Event_Comm_Notification_Receiver##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\
- : Event_Comm::Notification_Receiver(), CORBA::Object () { \
- m_pptr = new Event_Comm::Notification_Receiver_dispatch \
- (( Event_Comm::Notification_Receiver*)this,(CORBA::Object*)this,IT_m,Event_Comm_Notification_Receiver_IR,IT_p,IT_q); \
- m_obj = (X*)(m_pptr->getImplObj ()); \
- } \
- \
- virtual ~Event_Comm_Notification_Receiver##X () { \
- if (_okToDeleteImpl ()) delete m_obj; } \
- \
- virtual void* _deref () { \
- return m_obj; } \
- \
- virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->receive_notification ( notification,IT_env);\
-}\
- \
- virtual void disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->disconnect ( reason,IT_env);\
-}\
- \
- };
-
-
-#define QUALS_Event_Comm_Notification_Receiver \
- virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->receive_notification ( notification,IT_env);\
-}\
- \
- virtual void disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->disconnect ( reason,IT_env);\
-}\
-
-
-
-
-class Notification_ReceiverProxyFactoryClass : public virtual CORBA::ObjectFactoryClass {
-public:
- Notification_ReceiverProxyFactoryClass (unsigned char IT_p=0)
- : CORBA::ProxyFactory (Event_Comm_Notification_Receiver_IR, IT_p) {}
-
- virtual void* New (char *IT_OR, CORBA::Environment&);
-
- virtual void* New (ObjectReference *IT_OR, CORBA::Environment&);
-
- virtual void* New2 ();
-
- virtual void* IT_castUp (void *IT_p, char* IT_s);
-
- virtual CORBA::PPTR* pptr (void *IT_p);
-
- virtual void baseInterfaces (_IDL_SEQUENCE_string&);
-
-
-};
-
-static Notification_ReceiverProxyFactoryClass Notification_ReceiverProxyFactory;
-
-
-
-#endif
-
-
-#ifndef _Event_Comm_Notifier_defined
-#define _Event_Comm_Notifier_defined
-class Notifier_dispatch : public virtual CORBA::PPTR {
-public:
-
- Notifier_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m,
- CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {}
-
-
- Notifier_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notifier_dispatch () {}
-
- Notifier_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notifier_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m,
- char *IT_i, CORBA::Object* IT_ob, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {}
-
-
- virtual unsigned char dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void* IT_pp=NULL);
-
-
-};
-
-class Notifier;
-
-#ifndef Event_Comm_NotifierPtr
-#define Event_Comm_NotifierPtr
-
- typedef Notifier* Notifier_ptr;
-
- typedef Notifier* NotifierRef;
-
-#endif
-
-
-#ifndef Event_Comm_NotifierForwH
-#define Event_Comm_NotifierForwH
-static CORBA::ObjectRef Notifier_getBase (void *);
-static void Notifier_release (Notifier *, CORBA::Environment &IT_env);
-static void Notifier_release (Notifier_ptr);
-static Notifier* Notifier_duplicate (Notifier_ptr, CORBA::Environment &IT_env);
-static Notifier* Notifier_duplicate (Notifier_ptr );
-static Notifier_ptr Notifier_nil (CORBA::Environment &IT_env);
-static Notifier_ptr Notifier_nil ();
-#endif
-#define Event_Comm_Notifier_IMPL "Event_Comm_Notifier"
-
-
-class Notifier;
-
- typedef Notifier NotifierProxy;
-#define Event_Comm_Notifier_IR "Event_Comm_Notifier"
-#define Event_Comm_Notifier_IMPL "Event_Comm_Notifier"
-
-#ifndef Event_Comm_NotifierPtr
-#define Event_Comm_NotifierPtr
-
- typedef Notifier* Notifier_ptr;
-
- typedef Notifier* NotifierRef;
-
-#endif
-
-class Notifier: public virtual CORBA::Object {
-public:
- Notifier (char *IT_OR);
- Notifier (ObjectReference *IT_OR);
- Notifier () : CORBA::Object (1) {}
-protected:
- Notifier_ptr __duplicate(
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::Object::__duplicate (IT_env);
- return this;
- }
-public:
- static Notifier_ptr _duplicate(
- Notifier_ptr obj,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- if (CORBA::is_nil(obj, IT_env)) {
- IT_raise.maybeRaise ();
- return (obj);
- }
- Notifier_ptr IT_obj = obj->__duplicate (IT_env);
- IT_raise.maybeRaise();
- return IT_obj;
- }
-public:
- static Notifier* _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notifier* _bind (CORBA::Environment &IT_env);
- static Notifier* _bind (const char* IT_markerServer=NULL, const char* host=NULL,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notifier* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notifier_ptr _nil (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- IT_raise.maybeRaise();
- return (Notifier_ptr) CORBA::OBJECT_NIL;}
- virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
-};
-
- static const CORBA::TypeCode_ptr _tc_Notifier;
-
- static const CORBA::TypeCode_ptr _tc_NotifierRef;
-
-#ifndef Event_Comm_NotifierVarH
-#define Event_Comm_NotifierVarH
-
-#ifndef Event_Comm_NotifiervPtr
-#define Event_Comm_NotifiervPtr
-typedef Notifier* Notifier_vPtr;
-#endif
-
-class Notifier_var : public CORBA::_var
-{
- public:
-
- Notifier_var () {
- _ptr = Notifier_nil ();
- }
-
- Notifier_var (Notifier *IT_p) {
- _ptr = IT_p;
- }
-
- Notifier_var (const Notifier_var &IT_s) {
- _ptr = Notifier_duplicate (IT_s._ptr);
- }
-
- Notifier_var &operator= (Notifier *IT_p) {
- Notifier_release (_ptr);
- _ptr = IT_p;
- return (*this);
- }
-
- Notifier_var &operator= (const Notifier_var &IT_s) {
- Notifier_release (_ptr);
- _ptr = Notifier_duplicate (IT_s._ptr);
- return (*this);
- }
-
- ~Notifier_var () {
- Notifier_release (_ptr);
- }
-
- Notifier* operator-> () {
- return _ptr;
- }
-
- operator const Notifier_vPtr () const { return _ptr;}
- operator Notifier_vPtr& () { return _ptr;}
-
- protected:
- Notifier *_ptr;
- private:
- Notifier_var &operator= (const CORBA::_var &IT_s);
- Notifier_var (const CORBA::_var &IT_s);
- Notifier_var &operator= (const CORBA::_mgr &IT_s);
- Notifier_var &operator= (const CORBA::_SeqElem &IT_s);
- Notifier_var (const CORBA::_mgr &IT_s);
- Notifier_var (const CORBA::_SeqElem &IT_s);
-};
-
-#endif
-
-
-#ifndef Event_Comm_NotifierMgrH
-#define Event_Comm_NotifierMgrH
-
-class Notifier_mgr : public CORBA::_mgr
-{
- public:
-
- Notifier_mgr () {
- _ptr = Notifier_nil ();
- _release = 1;
- }
-
- Notifier_mgr (const Notifier_mgr &IT_s) {
- _ptr = Notifier_duplicate (IT_s._ptr);
- _release = 1;
- }
-
- Notifier_mgr &operator= (Notifier *IT_p) {
- if (_ptr && _release)
- Notifier_release (_ptr);
- _ptr = IT_p;
- _release = 1;
- return (*this);
- }
-
- Notifier_mgr &operator= (const Notifier_mgr &IT_s) {
- if (_ptr && _release)
- Notifier_release (_ptr);
- _ptr = Notifier_duplicate(IT_s._ptr);
- _release = 1;
- return (*this);
- }
-
- Notifier_mgr &operator= (const Notifier_var &IT_s) {
- if (_ptr && _release)
- Notifier_release (_ptr);
- _ptr = Notifier_duplicate(IT_s);
- _release = 1;
- return (*this);
- }
-
- ~Notifier_mgr () {
- if (_release)
- Notifier_release (_ptr);
- }
-
- unsigned char release () {
- return _release;
- }
-
- void release (unsigned char rel) {
- _release = rel;
- }
-
- operator int () const {
- CORBA::Environment env;
- CORBA::EnvExcRaiser IT_raise (&env);
- return (!(CORBA::is_nil((CORBA::Object*) _ptr, env)));
- }
-
- operator void* () const {
- return _ptr;
- }
-
- operator CORBA::Object * () const {
- return (CORBA::Object *) _ptr;
- }
-
- operator Notifier* () const {
- return (Notifier*) _ptr;
- }
-
- Notifier *_ptr;
-
- protected:
-
- unsigned char _release;
-};
-
-#endif
-
-#ifndef Event_Comm_NotifierSeqElemH
-#define Event_Comm_NotifierSeqElemH
-
-class Notifier_SeqElem : public CORBA::_SeqElem
-{
- public:
-
- Notifier_SeqElem (Event_Comm::Notifier_ptr* IT_p, unsigned char rel) {
- _ptr = IT_p;
- _release = rel;
- }
-
- Notifier_SeqElem &operator= (Event_Comm::Notifier_ptr IT_p) {
- if (!_ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notifier_release (*(_ptr));
- *(_ptr) = IT_p;
- return (*this);
- }
-
- Notifier_SeqElem &operator= (const Notifier_SeqElem &IT_s) {
- if (!_ptr|| !IT_s._ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notifier_release (*(_ptr));
- *(_ptr) = Notifier_duplicate(*(IT_s._ptr));
- return (*this);
- }
-
- operator Event_Comm::Notifier_ptr () const
-{
- if (!_ptr)
- return (Notifier_nil());
- return (Event_Comm::Notifier_ptr) (*_ptr);
- }
-
- Notifier_ptr operator->() const { return *_ptr;}
-
- protected:
- Event_Comm::Notifier_ptr *_ptr;
- unsigned char _release;
-};
-
-#endif
-
-
-#define TIE_Event_Comm_Notifier(X) Event_Comm_Notifier##X
-
-#define DEF_TIE_Event_Comm_Notifier(X) \
- class Event_Comm_Notifier##X : public virtual Event_Comm::Notifier { \
- X* m_obj; \
- public: \
- \
- Event_Comm_Notifier##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\
- : Event_Comm::Notifier(), CORBA::Object (), m_obj(objp) { \
- m_pptr = new Event_Comm::Notifier_dispatch \
- (( Event_Comm::Notifier*)this,(CORBA::Object*)this,m,l,Event_Comm_Notifier_IR,m_obj); \
- } \
- Event_Comm_Notifier##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\
- : Event_Comm::Notifier(), CORBA::Object () { \
- m_pptr = new Event_Comm::Notifier_dispatch \
- (( Event_Comm::Notifier*)this,(CORBA::Object*)this,IT_m,Event_Comm_Notifier_IR,IT_p,IT_q); \
- m_obj = (X*)(m_pptr->getImplObj ()); \
- } \
- \
- virtual ~Event_Comm_Notifier##X () { \
- if (_okToDeleteImpl ()) delete m_obj; } \
- \
- virtual void* _deref () { \
- return m_obj; } \
- \
- virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_disconnect ( reason,IT_env);\
-}\
- \
- virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_notification ( notification,IT_env);\
-}\
- \
- virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->subscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
- \
- virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->unsubscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
- \
- };
-
-
-#define QUALS_Event_Comm_Notifier \
- virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_disconnect ( reason,IT_env);\
-}\
- \
- virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_notification ( notification,IT_env);\
-}\
- \
- virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->subscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
- \
- virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->unsubscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
-
-
-
-
-class NotifierProxyFactoryClass : public virtual CORBA::ObjectFactoryClass {
-public:
- NotifierProxyFactoryClass (unsigned char IT_p=0)
- : CORBA::ProxyFactory (Event_Comm_Notifier_IR, IT_p) {}
-
- virtual void* New (char *IT_OR, CORBA::Environment&);
-
- virtual void* New (ObjectReference *IT_OR, CORBA::Environment&);
-
- virtual void* New2 ();
-
- virtual void* IT_castUp (void *IT_p, char* IT_s);
-
- virtual CORBA::PPTR* pptr (void *IT_p);
-
- virtual void baseInterfaces (_IDL_SEQUENCE_string&);
-
-
-};
-
-static NotifierProxyFactoryClass NotifierProxyFactory;
-
-
-
-#endif
-
-};
-
-
-void operator<<= (CORBA::any &IT_a, Event_Comm::Notification_Receiver_ptr IT_t);
-CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notification_Receiver_ptr& IT_t);
-
-
-void operator<<= (CORBA::any &IT_a, Event_Comm::Notifier_ptr IT_t);
-CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notifier_ptr& IT_t);
-
-
-void operator<<= (CORBA::any &IT_a, const Event_Comm::Notification& IT_t);
-CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notification*& IT_t);
-
-
-#endif
diff --git a/apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h b/apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h
deleted file mode 100644
index f8d3a12bb7f..00000000000
--- a/apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Event_Comm_i.h
-//
-// = DESCRIPTION
-// Class interface for the implementation of the distributed
-// event notification mechanism.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#if !defined (_EVENT_COMM_I_H)
-#define _EVENT_COMM_I_H
-
-#include "Notification_Receiver_i.h"
-#include "Notifier_i.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-// Tie the Notification_Receiver and Notifier implementation classes
-// together with the IDL interface.
-
-DEF_TIE_Event_Comm_Notification_Receiver (Notification_Receiver_i)
-DEF_TIE_Event_Comm_Notifier (Notifier_i)
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _EVENT_COMM_I_H */
diff --git a/apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h b/apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h
deleted file mode 100644
index eb5efa718dd..00000000000
--- a/apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notification_Receiver__i.h
-//
-// = DESCRIPTION
-// Class interface for the implementation of the <Notification_Receiver>
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#if !defined (_Notification_Receiver_i_H)
-#define _Notification_Receiver_i_H
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-#include "Event_Comm.hh"
-
-class Notification_Receiver_i
- // = TITLE
- // Defines the implementation class for event <Notification_Receivers>.
- //
- // = DESCRIPTION
-{
-public:
- Notification_Receiver_i (void);
- ~Notification_Receiver_i (void);
-
- virtual void receive_notification (const Event_Comm::Notification &notification,
- CORBA::Environment &IT_env);
- // Pass the <Notification> to the <Notification_Receiver>.
-
- virtual void disconnect (const char *reason,
- CORBA::Environment &IT_env);
- // Disconnect the <Notification_Receiver> from the <Notifier>,
- // giving it the <reason>.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _Notification_Receiver_i_H */
diff --git a/apps/Orbix-Examples/Event_Comm/include/Notifier_i.h b/apps/Orbix-Examples/Event_Comm/include/Notifier_i.h
deleted file mode 100644
index 5e7ac590f37..00000000000
--- a/apps/Orbix-Examples/Event_Comm/include/Notifier_i.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notifier_i.h
-//
-// = DESCRIPTION
-// Class interface for the implementation of the <Notifier>
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#if !defined (_Notifier_i_H)
-#define _Notifier_i_H
-
-#include "ace/Map_Manager.h"
-#include "ace/Synch.h"
-#include "ace/SString.h"
-#include "Event_Comm.hh"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-// Forward reference.
-class Notification_Receiver_Entry;
-
-class Notifier_i
- // = TITLE
- // Defines the implementation class for event <Notifiers>.
- //
- // = DESCRIPTION
-{
-public:
- enum
- {
- DEFAULT_SIZE = 1024 // Default max number of Event_Comm::Notification_Receivers.
- };
-
- Notifier_i (size_t size_hint = Notifier_i::DEFAULT_SIZE);
- // Initialize a Notifier_i object with the specified size hint.
-
- void send_disconnect (const char *reason,
- CORBA::Environment &IT_env);
- // Disconnect all the receivers, giving them the <reason>.
-
- void send_notification (const Event_Comm::Notification &notification,
- CORBA::Environment &IT_env);
- // Send the <Notification> to all the consumers who
- // have subscribed and who match the filtering criteria.
-
- void subscribe (Event_Comm::Notification_Receiver *notification_receiver,
- const char *filtering_criteria,
- CORBA::Environment &IT_env);
- // Subscribe the <Notification_Receiver> to receive events that
- // match <filtering_criteria> applied by the <Notifier>.
-
- void unsubscribe (Event_Comm::Notification_Receiver *notification_receiver,
- const char *filtering_criteria,
- CORBA::Environment &IT_env);
- // Unsubscribe the <Notification_Receiver>.
-
-private:
- // The following implementation should be replaced
- // by a standard container class from STL...
-
- typedef ACE_Map_Manager <ACE_SString, Notification_Receiver_Entry *, ACE_Null_Mutex> MAP_MANAGER;
- typedef ACE_Map_Iterator <ACE_SString, Notification_Receiver_Entry *, ACE_Null_Mutex> MAP_ITERATOR;
- typedef ACE_Map_Entry <ACE_SString, Notification_Receiver_Entry *> MAP_ENTRY;
-
- MAP_MANAGER map_;
- // Table that maps a <Event_Comm::Notification_Receiver *> to a <Notification_Receiver_Entry *>.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _Notifier_i_H */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh b/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh
deleted file mode 100644
index 85ad256da2a..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh
+++ /dev/null
@@ -1,887 +0,0 @@
-
-#ifndef Event_Comm_hh
-#define Event_Comm_hh
-
-#include <CORBA.h>
-
-#include <string.h>
-
-class Event_Comm {
-public:
-
-#ifndef Event_Comm_Notification_defined
-#define Event_Comm_Notification_defined
-
- struct Notification {
- CORBA::String_mgr tag_;
-
- void encodeOp (CORBA::Request &IT_r) const;
- void decodeOp (CORBA::Request &IT_r);
- void decodeInOutOp (CORBA::Request &IT_r);
- static void* IT_anySupport (CORBA::Request &IT_r,
- void *&, void*, const CORBA::Flags&);
- static const void *IT_fn;
- };
-
- static const CORBA::TypeCode_ptr _tc_Notification;
-
-#ifndef Event_Comm_NotificationVarH
-#define Event_Comm_NotificationVarH
-
-#ifndef Event_Comm_NotificationvPtr
-#define Event_Comm_NotificationvPtr
-typedef Notification* Notification_vPtr;
-#endif
-
-class Notification_var : public CORBA::_var
-{
- public:
-
- Notification_var () {
- _ptr = NULL;
- }
-
- Notification_var (Notification *IT_p) {
- _ptr = IT_p;
- }
-
- Notification_var (const Notification_var &IT_s) {
- if (!IT_s._ptr) {
- _ptr = IT_s._ptr;
- return;
- }
- _ptr = new Notification (*(IT_s._ptr));
- }
-
- Notification_var &operator= (Notification *IT_p) {
- if (_ptr != IT_p) {
- delete _ptr;
- }
- _ptr = IT_p;
- return (*this);
- }
-
- Notification_var &operator= (const Notification_var &IT_s) {
- if (_ptr != IT_s._ptr) {
- delete _ptr;
- }
- _ptr = new Notification (*(IT_s._ptr));
- return (*this);
- }
-
- ~Notification_var () {
- delete _ptr;
- }
-
- Notification* operator-> () {
- return _ptr;
- }
-
- operator const Notification_vPtr () const { return _ptr;}
- operator Notification_vPtr& () { return _ptr;}
- operator Notification& () const { return * _ptr;}
-
- protected:
- Notification *_ptr;
- private:
- Notification_var &operator= (const CORBA::_var &IT_s);
- Notification_var (const CORBA::_var &IT_s);
-};
-
-#endif
-
-
-#endif
-
-
-#ifndef _Event_Comm_Notification_Receiver_defined
-#define _Event_Comm_Notification_Receiver_defined
-class Notification_Receiver_dispatch : public virtual CORBA::PPTR {
-public:
-
- Notification_Receiver_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m,
- CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {}
-
-
- Notification_Receiver_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notification_Receiver_dispatch () {}
-
- Notification_Receiver_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notification_Receiver_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m,
- char *IT_i, CORBA::Object* IT_ob, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {}
-
-
- virtual unsigned char dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void* IT_pp=NULL);
-
-
-};
-
-class Notification_Receiver;
-
-#ifndef Event_Comm_Notification_ReceiverPtr
-#define Event_Comm_Notification_ReceiverPtr
-
- typedef Notification_Receiver* Notification_Receiver_ptr;
-
- typedef Notification_Receiver* Notification_ReceiverRef;
-
-#endif
-
-
-#ifndef Event_Comm_Notification_ReceiverForwH
-#define Event_Comm_Notification_ReceiverForwH
-static CORBA::ObjectRef Notification_Receiver_getBase (void *);
-static void Notification_Receiver_release (Notification_Receiver *, CORBA::Environment &IT_env);
-static void Notification_Receiver_release (Notification_Receiver_ptr);
-static Notification_Receiver* Notification_Receiver_duplicate (Notification_Receiver_ptr, CORBA::Environment &IT_env);
-static Notification_Receiver* Notification_Receiver_duplicate (Notification_Receiver_ptr );
-static Notification_Receiver_ptr Notification_Receiver_nil (CORBA::Environment &IT_env);
-static Notification_Receiver_ptr Notification_Receiver_nil ();
-#endif
-#define Event_Comm_Notification_Receiver_IMPL "Event_Comm_Notification_Receiver"
-
-
-class Notification_Receiver;
-
- typedef Notification_Receiver Notification_ReceiverProxy;
-#define Event_Comm_Notification_Receiver_IR "Event_Comm_Notification_Receiver"
-#define Event_Comm_Notification_Receiver_IMPL "Event_Comm_Notification_Receiver"
-
-#ifndef Event_Comm_Notification_ReceiverPtr
-#define Event_Comm_Notification_ReceiverPtr
-
- typedef Notification_Receiver* Notification_Receiver_ptr;
-
- typedef Notification_Receiver* Notification_ReceiverRef;
-
-#endif
-
-class Notification_Receiver: public virtual CORBA::Object {
-public:
- Notification_Receiver (char *IT_OR);
- Notification_Receiver (ObjectReference *IT_OR);
- Notification_Receiver () : CORBA::Object (1) {}
-protected:
- Notification_Receiver_ptr __duplicate(
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::Object::__duplicate (IT_env);
- return this;
- }
-public:
- static Notification_Receiver_ptr _duplicate(
- Notification_Receiver_ptr obj,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- if (CORBA::is_nil(obj, IT_env)) {
- IT_raise.maybeRaise ();
- return (obj);
- }
- Notification_Receiver_ptr IT_obj = obj->__duplicate (IT_env);
- IT_raise.maybeRaise();
- return IT_obj;
- }
-public:
- static Notification_Receiver* _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notification_Receiver* _bind (CORBA::Environment &IT_env);
- static Notification_Receiver* _bind (const char* IT_markerServer=NULL, const char* host=NULL,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notification_Receiver* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notification_Receiver_ptr _nil (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- IT_raise.maybeRaise();
- return (Notification_Receiver_ptr) CORBA::OBJECT_NIL;}
- virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void disconnect (const char * reason, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
-};
-
- static const CORBA::TypeCode_ptr _tc_Notification_Receiver;
-
- static const CORBA::TypeCode_ptr _tc_Notification_ReceiverRef;
-
-#ifndef Event_Comm_Notification_ReceiverVarH
-#define Event_Comm_Notification_ReceiverVarH
-
-#ifndef Event_Comm_Notification_ReceivervPtr
-#define Event_Comm_Notification_ReceivervPtr
-typedef Notification_Receiver* Notification_Receiver_vPtr;
-#endif
-
-class Notification_Receiver_var : public CORBA::_var
-{
- public:
-
- Notification_Receiver_var () {
- _ptr = Notification_Receiver_nil ();
- }
-
- Notification_Receiver_var (Notification_Receiver *IT_p) {
- _ptr = IT_p;
- }
-
- Notification_Receiver_var (const Notification_Receiver_var &IT_s) {
- _ptr = Notification_Receiver_duplicate (IT_s._ptr);
- }
-
- Notification_Receiver_var &operator= (Notification_Receiver *IT_p) {
- Notification_Receiver_release (_ptr);
- _ptr = IT_p;
- return (*this);
- }
-
- Notification_Receiver_var &operator= (const Notification_Receiver_var &IT_s) {
- Notification_Receiver_release (_ptr);
- _ptr = Notification_Receiver_duplicate (IT_s._ptr);
- return (*this);
- }
-
- ~Notification_Receiver_var () {
- Notification_Receiver_release (_ptr);
- }
-
- Notification_Receiver* operator-> () {
- return _ptr;
- }
-
- operator const Notification_Receiver_vPtr () const { return _ptr;}
- operator Notification_Receiver_vPtr& () { return _ptr;}
-
- protected:
- Notification_Receiver *_ptr;
- private:
- Notification_Receiver_var &operator= (const CORBA::_var &IT_s);
- Notification_Receiver_var (const CORBA::_var &IT_s);
- Notification_Receiver_var &operator= (const CORBA::_mgr &IT_s);
- Notification_Receiver_var &operator= (const CORBA::_SeqElem &IT_s);
- Notification_Receiver_var (const CORBA::_mgr &IT_s);
- Notification_Receiver_var (const CORBA::_SeqElem &IT_s);
-};
-
-#endif
-
-
-#ifndef Event_Comm_Notification_ReceiverMgrH
-#define Event_Comm_Notification_ReceiverMgrH
-
-class Notification_Receiver_mgr : public CORBA::_mgr
-{
- public:
-
- Notification_Receiver_mgr () {
- _ptr = Notification_Receiver_nil ();
- _release = 1;
- }
-
- Notification_Receiver_mgr (const Notification_Receiver_mgr &IT_s) {
- _ptr = Notification_Receiver_duplicate (IT_s._ptr);
- _release = 1;
- }
-
- Notification_Receiver_mgr &operator= (Notification_Receiver *IT_p) {
- if (_ptr && _release)
- Notification_Receiver_release (_ptr);
- _ptr = IT_p;
- _release = 1;
- return (*this);
- }
-
- Notification_Receiver_mgr &operator= (const Notification_Receiver_mgr &IT_s) {
- if (_ptr && _release)
- Notification_Receiver_release (_ptr);
- _ptr = Notification_Receiver_duplicate(IT_s._ptr);
- _release = 1;
- return (*this);
- }
-
- Notification_Receiver_mgr &operator= (const Notification_Receiver_var &IT_s) {
- if (_ptr && _release)
- Notification_Receiver_release (_ptr);
- _ptr = Notification_Receiver_duplicate(IT_s);
- _release = 1;
- return (*this);
- }
-
- ~Notification_Receiver_mgr () {
- if (_release)
- Notification_Receiver_release (_ptr);
- }
-
- unsigned char release () {
- return _release;
- }
-
- void release (unsigned char rel) {
- _release = rel;
- }
-
- operator int () const {
- CORBA::Environment env;
- CORBA::EnvExcRaiser IT_raise (&env);
- return (!(CORBA::is_nil((CORBA::Object*) _ptr, env)));
- }
-
- operator void* () const {
- return _ptr;
- }
-
- operator CORBA::Object * () const {
- return (CORBA::Object *) _ptr;
- }
-
- operator Notification_Receiver* () const {
- return (Notification_Receiver*) _ptr;
- }
-
- Notification_Receiver *_ptr;
-
- protected:
-
- unsigned char _release;
-};
-
-#endif
-
-#ifndef Event_Comm_Notification_ReceiverSeqElemH
-#define Event_Comm_Notification_ReceiverSeqElemH
-
-class Notification_Receiver_SeqElem : public CORBA::_SeqElem
-{
- public:
-
- Notification_Receiver_SeqElem (Event_Comm::Notification_Receiver_ptr* IT_p, unsigned char rel) {
- _ptr = IT_p;
- _release = rel;
- }
-
- Notification_Receiver_SeqElem &operator= (Event_Comm::Notification_Receiver_ptr IT_p) {
- if (!_ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notification_Receiver_release (*(_ptr));
- *(_ptr) = IT_p;
- return (*this);
- }
-
- Notification_Receiver_SeqElem &operator= (const Notification_Receiver_SeqElem &IT_s) {
- if (!_ptr|| !IT_s._ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notification_Receiver_release (*(_ptr));
- *(_ptr) = Notification_Receiver_duplicate(*(IT_s._ptr));
- return (*this);
- }
-
- operator Event_Comm::Notification_Receiver_ptr () const
-{
- if (!_ptr)
- return (Notification_Receiver_nil());
- return (Event_Comm::Notification_Receiver_ptr) (*_ptr);
- }
-
- Notification_Receiver_ptr operator->() const { return *_ptr;}
-
- protected:
- Event_Comm::Notification_Receiver_ptr *_ptr;
- unsigned char _release;
-};
-
-#endif
-
-
-#define TIE_Event_Comm_Notification_Receiver(X) Event_Comm_Notification_Receiver##X
-
-#define DEF_TIE_Event_Comm_Notification_Receiver(X) \
- class Event_Comm_Notification_Receiver##X : public virtual Event_Comm::Notification_Receiver { \
- X* m_obj; \
- public: \
- \
- Event_Comm_Notification_Receiver##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\
- : Event_Comm::Notification_Receiver(), CORBA::Object (), m_obj(objp) { \
- m_pptr = new Event_Comm::Notification_Receiver_dispatch \
- (( Event_Comm::Notification_Receiver*)this,(CORBA::Object*)this,m,l,Event_Comm_Notification_Receiver_IR,m_obj); \
- } \
- Event_Comm_Notification_Receiver##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\
- : Event_Comm::Notification_Receiver(), CORBA::Object () { \
- m_pptr = new Event_Comm::Notification_Receiver_dispatch \
- (( Event_Comm::Notification_Receiver*)this,(CORBA::Object*)this,IT_m,Event_Comm_Notification_Receiver_IR,IT_p,IT_q); \
- m_obj = (X*)(m_pptr->getImplObj ()); \
- } \
- \
- virtual ~Event_Comm_Notification_Receiver##X () { \
- if (_okToDeleteImpl ()) delete m_obj; } \
- \
- virtual void* _deref () { \
- return m_obj; } \
- \
- virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->receive_notification ( notification,IT_env);\
-}\
- \
- virtual void disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->disconnect ( reason,IT_env);\
-}\
- \
- };
-
-
-#define QUALS_Event_Comm_Notification_Receiver \
- virtual void receive_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->receive_notification ( notification,IT_env);\
-}\
- \
- virtual void disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->disconnect ( reason,IT_env);\
-}\
-
-
-
-
-class Notification_ReceiverProxyFactoryClass : public virtual CORBA::ObjectFactoryClass {
-public:
- Notification_ReceiverProxyFactoryClass (unsigned char IT_p=0)
- : CORBA::ProxyFactory (Event_Comm_Notification_Receiver_IR, IT_p) {}
-
- virtual void* New (char *IT_OR, CORBA::Environment&);
-
- virtual void* New (ObjectReference *IT_OR, CORBA::Environment&);
-
- virtual void* New2 ();
-
- virtual void* IT_castUp (void *IT_p, char* IT_s);
-
- virtual CORBA::PPTR* pptr (void *IT_p);
-
- virtual void baseInterfaces (_IDL_SEQUENCE_string&);
-
-
-};
-
-static Notification_ReceiverProxyFactoryClass Notification_ReceiverProxyFactory;
-
-
-
-#endif
-
-
-#ifndef _Event_Comm_Notifier_defined
-#define _Event_Comm_Notifier_defined
-class Notifier_dispatch : public virtual CORBA::PPTR {
-public:
-
- Notifier_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m,
- CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {}
-
-
- Notifier_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notifier_dispatch () {}
-
- Notifier_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- Notifier_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m,
- char *IT_i, CORBA::Object* IT_ob, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {}
-
-
- virtual unsigned char dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void* IT_pp=NULL);
-
-
-};
-
-class Notifier;
-
-#ifndef Event_Comm_NotifierPtr
-#define Event_Comm_NotifierPtr
-
- typedef Notifier* Notifier_ptr;
-
- typedef Notifier* NotifierRef;
-
-#endif
-
-
-#ifndef Event_Comm_NotifierForwH
-#define Event_Comm_NotifierForwH
-static CORBA::ObjectRef Notifier_getBase (void *);
-static void Notifier_release (Notifier *, CORBA::Environment &IT_env);
-static void Notifier_release (Notifier_ptr);
-static Notifier* Notifier_duplicate (Notifier_ptr, CORBA::Environment &IT_env);
-static Notifier* Notifier_duplicate (Notifier_ptr );
-static Notifier_ptr Notifier_nil (CORBA::Environment &IT_env);
-static Notifier_ptr Notifier_nil ();
-#endif
-#define Event_Comm_Notifier_IMPL "Event_Comm_Notifier"
-
-
-class Notifier;
-
- typedef Notifier NotifierProxy;
-#define Event_Comm_Notifier_IR "Event_Comm_Notifier"
-#define Event_Comm_Notifier_IMPL "Event_Comm_Notifier"
-
-#ifndef Event_Comm_NotifierPtr
-#define Event_Comm_NotifierPtr
-
- typedef Notifier* Notifier_ptr;
-
- typedef Notifier* NotifierRef;
-
-#endif
-
-class Notifier: public virtual CORBA::Object {
-public:
- Notifier (char *IT_OR);
- Notifier (ObjectReference *IT_OR);
- Notifier () : CORBA::Object (1) {}
-protected:
- Notifier_ptr __duplicate(
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::Object::__duplicate (IT_env);
- return this;
- }
-public:
- static Notifier_ptr _duplicate(
- Notifier_ptr obj,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- if (CORBA::is_nil(obj, IT_env)) {
- IT_raise.maybeRaise ();
- return (obj);
- }
- Notifier_ptr IT_obj = obj->__duplicate (IT_env);
- IT_raise.maybeRaise();
- return IT_obj;
- }
-public:
- static Notifier* _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notifier* _bind (CORBA::Environment &IT_env);
- static Notifier* _bind (const char* IT_markerServer=NULL, const char* host=NULL,
- CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notifier* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ());
- static Notifier_ptr _nil (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) {
- CORBA::EnvExcRaiser IT_raise (&IT_env);
- IT_raise.maybeRaise();
- return (Notifier_ptr) CORBA::OBJECT_NIL;}
- virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
- virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException);
-};
-
- static const CORBA::TypeCode_ptr _tc_Notifier;
-
- static const CORBA::TypeCode_ptr _tc_NotifierRef;
-
-#ifndef Event_Comm_NotifierVarH
-#define Event_Comm_NotifierVarH
-
-#ifndef Event_Comm_NotifiervPtr
-#define Event_Comm_NotifiervPtr
-typedef Notifier* Notifier_vPtr;
-#endif
-
-class Notifier_var : public CORBA::_var
-{
- public:
-
- Notifier_var () {
- _ptr = Notifier_nil ();
- }
-
- Notifier_var (Notifier *IT_p) {
- _ptr = IT_p;
- }
-
- Notifier_var (const Notifier_var &IT_s) {
- _ptr = Notifier_duplicate (IT_s._ptr);
- }
-
- Notifier_var &operator= (Notifier *IT_p) {
- Notifier_release (_ptr);
- _ptr = IT_p;
- return (*this);
- }
-
- Notifier_var &operator= (const Notifier_var &IT_s) {
- Notifier_release (_ptr);
- _ptr = Notifier_duplicate (IT_s._ptr);
- return (*this);
- }
-
- ~Notifier_var () {
- Notifier_release (_ptr);
- }
-
- Notifier* operator-> () {
- return _ptr;
- }
-
- operator const Notifier_vPtr () const { return _ptr;}
- operator Notifier_vPtr& () { return _ptr;}
-
- protected:
- Notifier *_ptr;
- private:
- Notifier_var &operator= (const CORBA::_var &IT_s);
- Notifier_var (const CORBA::_var &IT_s);
- Notifier_var &operator= (const CORBA::_mgr &IT_s);
- Notifier_var &operator= (const CORBA::_SeqElem &IT_s);
- Notifier_var (const CORBA::_mgr &IT_s);
- Notifier_var (const CORBA::_SeqElem &IT_s);
-};
-
-#endif
-
-
-#ifndef Event_Comm_NotifierMgrH
-#define Event_Comm_NotifierMgrH
-
-class Notifier_mgr : public CORBA::_mgr
-{
- public:
-
- Notifier_mgr () {
- _ptr = Notifier_nil ();
- _release = 1;
- }
-
- Notifier_mgr (const Notifier_mgr &IT_s) {
- _ptr = Notifier_duplicate (IT_s._ptr);
- _release = 1;
- }
-
- Notifier_mgr &operator= (Notifier *IT_p) {
- if (_ptr && _release)
- Notifier_release (_ptr);
- _ptr = IT_p;
- _release = 1;
- return (*this);
- }
-
- Notifier_mgr &operator= (const Notifier_mgr &IT_s) {
- if (_ptr && _release)
- Notifier_release (_ptr);
- _ptr = Notifier_duplicate(IT_s._ptr);
- _release = 1;
- return (*this);
- }
-
- Notifier_mgr &operator= (const Notifier_var &IT_s) {
- if (_ptr && _release)
- Notifier_release (_ptr);
- _ptr = Notifier_duplicate(IT_s);
- _release = 1;
- return (*this);
- }
-
- ~Notifier_mgr () {
- if (_release)
- Notifier_release (_ptr);
- }
-
- unsigned char release () {
- return _release;
- }
-
- void release (unsigned char rel) {
- _release = rel;
- }
-
- operator int () const {
- CORBA::Environment env;
- CORBA::EnvExcRaiser IT_raise (&env);
- return (!(CORBA::is_nil((CORBA::Object*) _ptr, env)));
- }
-
- operator void* () const {
- return _ptr;
- }
-
- operator CORBA::Object * () const {
- return (CORBA::Object *) _ptr;
- }
-
- operator Notifier* () const {
- return (Notifier*) _ptr;
- }
-
- Notifier *_ptr;
-
- protected:
-
- unsigned char _release;
-};
-
-#endif
-
-#ifndef Event_Comm_NotifierSeqElemH
-#define Event_Comm_NotifierSeqElemH
-
-class Notifier_SeqElem : public CORBA::_SeqElem
-{
- public:
-
- Notifier_SeqElem (Event_Comm::Notifier_ptr* IT_p, unsigned char rel) {
- _ptr = IT_p;
- _release = rel;
- }
-
- Notifier_SeqElem &operator= (Event_Comm::Notifier_ptr IT_p) {
- if (!_ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notifier_release (*(_ptr));
- *(_ptr) = IT_p;
- return (*this);
- }
-
- Notifier_SeqElem &operator= (const Notifier_SeqElem &IT_s) {
- if (!_ptr|| !IT_s._ptr)
- return (*this);
- if (*(_ptr) && _release)
- Notifier_release (*(_ptr));
- *(_ptr) = Notifier_duplicate(*(IT_s._ptr));
- return (*this);
- }
-
- operator Event_Comm::Notifier_ptr () const
-{
- if (!_ptr)
- return (Notifier_nil());
- return (Event_Comm::Notifier_ptr) (*_ptr);
- }
-
- Notifier_ptr operator->() const { return *_ptr;}
-
- protected:
- Event_Comm::Notifier_ptr *_ptr;
- unsigned char _release;
-};
-
-#endif
-
-
-#define TIE_Event_Comm_Notifier(X) Event_Comm_Notifier##X
-
-#define DEF_TIE_Event_Comm_Notifier(X) \
- class Event_Comm_Notifier##X : public virtual Event_Comm::Notifier { \
- X* m_obj; \
- public: \
- \
- Event_Comm_Notifier##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\
- : Event_Comm::Notifier(), CORBA::Object (), m_obj(objp) { \
- m_pptr = new Event_Comm::Notifier_dispatch \
- (( Event_Comm::Notifier*)this,(CORBA::Object*)this,m,l,Event_Comm_Notifier_IR,m_obj); \
- } \
- Event_Comm_Notifier##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\
- : Event_Comm::Notifier(), CORBA::Object () { \
- m_pptr = new Event_Comm::Notifier_dispatch \
- (( Event_Comm::Notifier*)this,(CORBA::Object*)this,IT_m,Event_Comm_Notifier_IR,IT_p,IT_q); \
- m_obj = (X*)(m_pptr->getImplObj ()); \
- } \
- \
- virtual ~Event_Comm_Notifier##X () { \
- if (_okToDeleteImpl ()) delete m_obj; } \
- \
- virtual void* _deref () { \
- return m_obj; } \
- \
- virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_disconnect ( reason,IT_env);\
-}\
- \
- virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_notification ( notification,IT_env);\
-}\
- \
- virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->subscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
- \
- virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->unsubscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
- \
- };
-
-
-#define QUALS_Event_Comm_Notifier \
- virtual void send_disconnect (const char * reason, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_disconnect ( reason,IT_env);\
-}\
- \
- virtual void send_notification (const Event_Comm::Notification& notification, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->send_notification ( notification,IT_env);\
-}\
- \
- virtual void subscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->subscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
- \
- virtual void unsubscribe (Event_Comm::Notification_Receiver_ptr notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) throw (CORBA::SystemException){\
- m_obj->unsubscribe ( notification_receiver, filtering_criteria,IT_env);\
-}\
-
-
-
-
-class NotifierProxyFactoryClass : public virtual CORBA::ObjectFactoryClass {
-public:
- NotifierProxyFactoryClass (unsigned char IT_p=0)
- : CORBA::ProxyFactory (Event_Comm_Notifier_IR, IT_p) {}
-
- virtual void* New (char *IT_OR, CORBA::Environment&);
-
- virtual void* New (ObjectReference *IT_OR, CORBA::Environment&);
-
- virtual void* New2 ();
-
- virtual void* IT_castUp (void *IT_p, char* IT_s);
-
- virtual CORBA::PPTR* pptr (void *IT_p);
-
- virtual void baseInterfaces (_IDL_SEQUENCE_string&);
-
-
-};
-
-static NotifierProxyFactoryClass NotifierProxyFactory;
-
-
-
-#endif
-
-};
-
-
-void operator<<= (CORBA::any &IT_a, Event_Comm::Notification_Receiver_ptr IT_t);
-CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notification_Receiver_ptr& IT_t);
-
-
-void operator<<= (CORBA::any &IT_a, Event_Comm::Notifier_ptr IT_t);
-CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notifier_ptr& IT_t);
-
-
-void operator<<= (CORBA::any &IT_a, const Event_Comm::Notification& IT_t);
-CORBA::Boolean operator>>= (const CORBA::any &IT_a, Event_Comm::Notification*& IT_t);
-
-
-#endif
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl b/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl
deleted file mode 100644
index 73c56a3ab28..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl
+++ /dev/null
@@ -1,94 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// @(#)Event_Comm.idl 1.1 10/18/96
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Event_Comm.idl
-//
-// = DESCRIPTION
-// The CORBA IDL module for distributed event notification.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _EVENT_COMM_IDL
-#define _EVENT_COMM_IDL
-
-module Event_Comm
- // = TITLE
- // The CORBA IDL module for distributed event notification.
- //
- // = DESCRIPTION
-{
- struct Notification
- // = TITLE
- // Defines the interface for an event <Notification>.
- //
- // = This is the type passed by the Notifier to the Notification_Receiver.
- // Since it contains an <any>, it can hold any values. Naturally,
- // the consumer must understand how to interpret this!
- {
- string tag_;
- // Tag for the notification.
-
- // any value_;
- // A notification can contain anything.
-
-// Object object_ref_;
- // Object reference for callbacks.
- };
-
- interface Notification_Receiver
- // = TITLE
- // Defines the interface for a <Notification_Receiver> of events.
- // Note that all operations are <oneway> to avoid blocking.
- //
- // = DESCRIPTION
- {
- oneway void receive_notification (in Notification notification);
- // Inform the <Notification_Receiver> that <event> has occurred.
-
- oneway void disconnect (in string reason);
- // Disconnect the <Notification_Receiver> from the <Notifier>,
- // giving it the <reason>.
- };
-
- interface Notifier
- // = TITLE
- // Defines the interface for a <Notifier> of events.
- //
- // = DESCRIPTION
- {
- oneway void send_disconnect (in string reason);
- // Disconnect all the receivers, giving them the <reason>.
-
- oneway void send_notification (in Notification notification);
- // Send the <Notification> to all the consumers who
- // have subscribed and who match the filtering criteria.
-
- oneway void subscribe (in Notification_Receiver notification_receiver,
- in string filtering_criteria);
- // Subscribe the <Notification_Receiver> to receive events that
- // match the regular expresssion <filtering_criteria> applied by
- // the <Notifier>. If <filtering_criteria> is "" then all events
- // are matched.
-
- oneway void unsubscribe (in Notification_Receiver notification_receiver,
- in string filtering_criteria);
- // Unsubscribe the <Notification_Receiver> that matches the
- // filtering criteria. If <filtering_criteria> is "" then
- // all <Notification_Receivers> with the matching object reference
- // are removed.
- };
-};
-
-#endif /* _EVENT_COMM_IDL */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp b/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp
deleted file mode 100644
index b7e328c556c..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp
+++ /dev/null
@@ -1,351 +0,0 @@
-
-// $Id$
-
-#include "Event_Comm.hh"
-
-
-#ifndef Event_Comm_Notification_Ops
-#define Event_Comm_Notification_Ops
-
-void Event_Comm::Notification:: encodeOp (CORBA::Request &IT_r) const {
- IT_r.encodeStringOp (tag_);
-}
-
-void Event_Comm::Notification:: decodeOp (CORBA::Request &IT_r) {
- IT_r.decodeStringOp(tag_);
-}
-
-void Event_Comm::Notification:: decodeInOutOp (CORBA::Request &IT_r) {
- IT_r.decodeInOutStrOp(tag_, 0);
-}
-
-void* Event_Comm::Notification:: IT_anySupport (CORBA::Request &IT_r,
- void *& IT_v, void *IT_to, const CORBA::Flags& IT_f) {
- Event_Comm::Notification* IT_l = (Event_Comm::Notification*)IT_v;
-
- if (IT_f.isSetAll (CORBA::ARG_INOUT)) {
- if (!IT_l)
- IT_l = new Event_Comm::Notification();
- IT_l -> decodeInOutOp (IT_r);
- IT_v = IT_l;
- }
- else if (IT_f.isSet (CORBA::ARG_IN)) {
- IT_l -> encodeOp (IT_r);
- }
- else if (IT_f.isSet (CORBA::ARG_OUT)) {
- if (!IT_l)
- IT_l = new Event_Comm::Notification();
- IT_l -> decodeOp (IT_r);
- IT_v = IT_l;
- }
- else if (IT_f.isSet (CORBA::_ANY_ASSIGN)) {
- Event_Comm::Notification*IT_s = IT_to ? (Event_Comm::Notification*)IT_to : new Event_Comm::Notification;
- *IT_s = *IT_l; return IT_s;
- }
- else if (IT_f.isSet (CORBA::_ANY_DELETE)) {
- if (IT_to) IT_l->Event_Comm::Notification::~Notification();
- else delete IT_l;
- return NULL;
- }
- else if (IT_f.isSet (CORBA::_ANY_SIZEOF)) {
- return (void*) (sizeof (Event_Comm::Notification));
- }
- else if (IT_f.isNil ()) {
- if (!IT_l)
- IT_l = new Event_Comm::Notification();
- IT_l -> decodeOp (IT_r);
- IT_v = IT_l;
- }
- return NULL;
-}
-
-const void *Event_Comm::Notification:: IT_fn =
-CORBA::anyTable.record ("Event_Comm::Notification", &Event_Comm::Notification:: IT_anySupport);
-
-Event_Comm::Notification &Event_Comm::Notification:: operator= (const Event_Comm::IONANC_Notification& IT_p) {
- this->operator= (*(Event_Comm::Notification*) &IT_p);
- return (*this);
-}
-
-Event_Comm::Notification:: operator Event_Comm::IONANC_Notification () {
- Event_Comm::IONANC_Notification tmp;
- memset (&tmp, 0, sizeof(tmp));
- ((Event_Comm::Notification *) &tmp)->operator= (*this);
- return tmp;
-}
-
-Event_Comm::Notification:: operator const Event_Comm::IONANC_Notification () const {
- Event_Comm::IONANC_Notification tmp;
- memset (&tmp, 0, sizeof(tmp));
- ((Event_Comm::Notification *) &tmp)->operator= (*this);
- return tmp;
-}
-
-Event_Comm::Notification::~Notification () {
- if (tag_) delete [] tag_;
-}
-
-Event_Comm::Notification:: Notification (const Event_Comm::Notification &IT_s)
- {
- if (IT_s.tag_) {
- tag_=new char [strlen(IT_s.tag_)+1];
- strcpy (tag_, IT_s.tag_);
- }
- else {
- tag_ = NULL;
- }
-}
-
-Event_Comm::Notification:: Notification () {
- tag_ = NULL;
-}
-
-Event_Comm::Notification &Event_Comm::Notification:: operator= (const Event_Comm::Notification& IT_s) {
- if (this == &IT_s) return *this;
- if (tag_) delete [] tag_;
- if (IT_s.tag_) {
- tag_=new char [strlen(IT_s.tag_)+1];
- strcpy (tag_, IT_s.tag_);
- }
- else {
- tag_ = NULL;
- }
- return *this;
-}
-
-Event_Comm::IONANC_Notification:: operator Event_Comm::Notification () {
- return (*((Event_Comm::Notification *) this));
-}
-
-Event_Comm::IONANC_Notification:: operator const Event_Comm::Notification () const {
- return (*((const Event_Comm::Notification *) this));
-}
-
-
-#endif
-Event_Comm::Notification_Receiver::Notification_Receiver (char *IT_OR) {
- m_pptr = new Notification_Receiver_dispatch (IT_OR, this,(CORBA::Object*)this);
-}
-
-#ifndef Event_Comm_Notification_ReceiverForwC
-#define Event_Comm_Notification_ReceiverForwC
-CORBA::ObjectRef Event_Comm::Notification_Receiver_getBase(void *IT_p){
- return (Event_Comm::Notification_Receiver*)IT_p;}
-
-void Event_Comm::Notification_Receiver_release (void *IT_p, CORBA::Environment &IT_env) {
- ((Event_Comm::Notification_Receiver*)IT_p)->_release(IT_env);}
-
-Event_Comm::Notification_Receiver* Event_Comm::Notification_Receiver_duplicate (void *IT_p, CORBA::Environment &IT_env) {
- return ((Event_Comm::Notification_Receiver*)IT_p)->_duplicate(IT_env); }
-#endif
-
-
-
-Event_Comm::Notification_Receiver* Event_Comm::Notification_Receiver:: _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env) {
- Notification_Receiver*IT_p =
- (Notification_Receiver*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host,
- Event_Comm_Notification_Receiver_IMPL, Event_Comm_Notification_Receiver_IR);
- return IT_p ? IT_p->_duplicate () : NULL; }
-
-
-
-Event_Comm::Notification_Receiver* Event_Comm::Notification_Receiver:: _bind (CORBA::Environment &IT_env) {
- return _bind (NULL,NULL,CORBA::Context(), IT_env); }
-
-
-Event_Comm::Notification_Receiver* Event_Comm::Notification_Receiver:: _bind (const char* IT_markerServer, const char* host,
- CORBA::Environment &IT_env) {
- return _bind (IT_markerServer, host, CORBA::Context (), IT_env); }
-Event_Comm::Notification_Receiver* Event_Comm::Notification_Receiver::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_env) {
- Event_Comm::Notification_Receiver* IT_p = (Event_Comm::Notification_Receiver*)CORBA::Object::_castDown (IT_obj, Event_Comm_Notification_Receiver_IR, IT_env);
- return IT_p ? IT_p->_duplicate(IT_env) : NULL;
- }
-
-void* Event_Comm::Notification_ReceiverProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) {
- return new Notification_Receiver(IT_OR);}
-
-void* Event_Comm::Notification_ReceiverProxyFactoryClass::New2 () {
- return new Notification_Receiver();}
-
-void* Event_Comm::Notification_ReceiverProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s) {
- void *IT_l;
- if (!CORBA::_interfaceCmp (IT_s,Event_Comm_Notification_Receiver_IR))
- return IT_p;
- else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((Event_Comm::Notification_Receiver*)IT_p),IT_s))
- return IT_l;
- else return NULL;
- }
-
-
-CORBA::PPTR* Event_Comm::Notification_ReceiverProxyFactoryClass::pptr (void *IT_p) {
- return ((Event_Comm::Notification_Receiver*)IT_p)->_pptr ();}
-
-void Event_Comm::Notification_ReceiverProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) {
- add (seq, Event_Comm_Notification_Receiver_IR);
- CORBA::ObjectFactoryClass::baseInterfaces (seq);
-}
-
- void Event_Comm::Notification_Receiver:: receive_notification(const Event_Comm::Notification& notification, CORBA::Environment &IT_env) {
-
- if (IT_env || m_isNull) return ;
- CORBA::Request IT_r (this, "receive_notification",IT_env,1,1);
- if (!IT_r.isException (IT_env)) {
- notification.encodeOp (IT_r);
- }
-
- IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env);
- }
-
- void Event_Comm::Notification_Receiver:: disconnect(const char * reason, CORBA::Environment &IT_env) {
-
- if (IT_env || m_isNull) return ;
- CORBA::Request IT_r (this, "disconnect",IT_env,1,1);
- if (!IT_r.isException (IT_env)) {
- IT_r.encodeStringOp (reason);
- }
-
- IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env);
- }
-
-
-Event_Comm::Notification_ReceiverProxyFactoryClass Event_Comm::Notification_ReceiverProxyFactory(1);
-
-
-#ifndef Event_Comm_Notification_Receiver_dispatch_impl
-
-unsigned char Event_Comm::Notification_Receiver_dispatch::dispatch (CORBA::Request &IT_r,
- unsigned char, void *) {
- IT_r.makeRuntimeException1 ("Event_Comm::Notification_Receiver");
- return 0;
-}
-
-#endif
-
-Event_Comm::Notifier::Notifier (char *IT_OR) {
- m_pptr = new Notifier_dispatch (IT_OR, this,(CORBA::Object*)this);
-}
-
-#ifndef Event_Comm_NotifierForwC
-#define Event_Comm_NotifierForwC
-CORBA::ObjectRef Event_Comm::Notifier_getBase(void *IT_p){
- return (Event_Comm::Notifier*)IT_p;}
-
-void Event_Comm::Notifier_release (void *IT_p, CORBA::Environment &IT_env) {
- ((Event_Comm::Notifier*)IT_p)->_release(IT_env);}
-
-Event_Comm::Notifier* Event_Comm::Notifier_duplicate (void *IT_p, CORBA::Environment &IT_env) {
- return ((Event_Comm::Notifier*)IT_p)->_duplicate(IT_env); }
-#endif
-
-
-
-Event_Comm::Notifier* Event_Comm::Notifier:: _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env) {
- Notifier*IT_p =
- (Notifier*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host,
- Event_Comm_Notifier_IMPL, Event_Comm_Notifier_IR);
- return IT_p ? IT_p->_duplicate () : NULL; }
-
-
-
-Event_Comm::Notifier* Event_Comm::Notifier:: _bind (CORBA::Environment &IT_env) {
- return _bind (NULL,NULL,CORBA::Context(), IT_env); }
-
-
-Event_Comm::Notifier* Event_Comm::Notifier:: _bind (const char* IT_markerServer, const char* host,
- CORBA::Environment &IT_env) {
- return _bind (IT_markerServer, host, CORBA::Context (), IT_env); }
-Event_Comm::Notifier* Event_Comm::Notifier::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_env) {
- Event_Comm::Notifier* IT_p = (Event_Comm::Notifier*)CORBA::Object::_castDown (IT_obj, Event_Comm_Notifier_IR, IT_env);
- return IT_p ? IT_p->_duplicate(IT_env) : NULL;
- }
-
-void* Event_Comm::NotifierProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) {
- return new Notifier(IT_OR);}
-
-void* Event_Comm::NotifierProxyFactoryClass::New2 () {
- return new Notifier();}
-
-void* Event_Comm::NotifierProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s) {
- void *IT_l;
- if (!CORBA::_interfaceCmp (IT_s,Event_Comm_Notifier_IR))
- return IT_p;
- else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((Event_Comm::Notifier*)IT_p),IT_s))
- return IT_l;
- else return NULL;
- }
-
-
-CORBA::PPTR* Event_Comm::NotifierProxyFactoryClass::pptr (void *IT_p) {
- return ((Event_Comm::Notifier*)IT_p)->_pptr ();}
-
-void Event_Comm::NotifierProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) {
- add (seq, Event_Comm_Notifier_IR);
- CORBA::ObjectFactoryClass::baseInterfaces (seq);
-}
-
- void Event_Comm::Notifier:: send_disconnect(const char * reason, CORBA::Environment &IT_env) {
-
- if (IT_env || m_isNull) return ;
- CORBA::Request IT_r (this, "send_disconnect",IT_env,1,1);
- if (!IT_r.isException (IT_env)) {
- IT_r.encodeStringOp (reason);
- }
-
- IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env);
- }
-
- void Event_Comm::Notifier:: send_notification(const Event_Comm::Notification& notification, CORBA::Environment &IT_env) {
-
- if (IT_env || m_isNull) return ;
- CORBA::Request IT_r (this, "send_notification",IT_env,1,1);
- if (!IT_r.isException (IT_env)) {
- notification.encodeOp (IT_r);
- }
-
- IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env);
- }
-
- void Event_Comm::Notifier:: subscribe(Event_Comm::Notification_Receiver* notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) {
-
- if (IT_env || m_isNull) return ;
- CORBA::Request IT_r (this, "subscribe",IT_env,1,1);
- if (!IT_r.isException (IT_env)) {
- IT_r << (CORBA::Object*)notification_receiver;
-
- IT_r.encodeStringOp (filtering_criteria);
- }
-
- IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env);
- }
-
- void Event_Comm::Notifier:: unsubscribe(Event_Comm::Notification_Receiver* notification_receiver, const char * filtering_criteria, CORBA::Environment &IT_env) {
-
- if (IT_env || m_isNull) return ;
- CORBA::Request IT_r (this, "unsubscribe",IT_env,1,1);
- if (!IT_r.isException (IT_env)) {
- IT_r << (CORBA::Object*)notification_receiver;
-
- IT_r.encodeStringOp (filtering_criteria);
- }
-
- IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env);
- }
-
-
-Event_Comm::NotifierProxyFactoryClass Event_Comm::NotifierProxyFactory(1);
-
-
-#ifndef Event_Comm_Notifier_dispatch_impl
-
-unsigned char Event_Comm::Notifier_dispatch::dispatch (CORBA::Request &IT_r,
- unsigned char, void *) {
- IT_r.makeRuntimeException1 ("Event_Comm::Notifier");
- return 0;
-}
-
-#endif
-
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp b/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp
deleted file mode 100644
index 7609370a2e6..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp
+++ /dev/null
@@ -1,166 +0,0 @@
-
-// $Id$
-
-#include "Event_Comm.hh"
-
-
-#define Event_Comm_Notification_Receiver_dispatch_impl
-
-unsigned char Event_Comm::Notification_Receiver_dispatch::dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void *IT_pp) {
- if (!IT_pp)
- IT_pp = m_obj;
- const char *IT_s = IT_r.getOperation ();
- if (!strcmp(IT_s,"receive_notification")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~receive_notification~+notification{R~Event_Comm::Notification~tag_{0}},>{v},O{}\
-"))
- return 1;
- Event_Comm::Notification notification;
- notification.decodeOp (IT_r);
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((Event_Comm::Notification_Receiver*)IT_pp)->receive_notification ( notification, IT_env);
-
- IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env);
- return 1;
- }
-
- else if (!strcmp(IT_s,"disconnect")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~disconnect~+reason{0},>{v},O{}\
-"))
- return 1;
- char * reason;
- IT_r.decodeStringOp(reason);
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((Event_Comm::Notification_Receiver*)IT_pp)->disconnect ( reason, IT_env);
-
- delete [] reason;
- IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env);
- return 1;
- }
-
- else if (IT_isTarget)
- IT_r.makeRuntimeException2 ();
-
- return 0;
-}
-
-#define Event_Comm_Notifier_dispatch_impl
-
-unsigned char Event_Comm::Notifier_dispatch::dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void *IT_pp) {
- if (!IT_pp)
- IT_pp = m_obj;
- const char *IT_s = IT_r.getOperation ();
- if (!strcmp(IT_s,"send_disconnect")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~send_disconnect~+reason{0},>{v},O{}\
-"))
- return 1;
- char * reason;
- IT_r.decodeStringOp(reason);
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((Event_Comm::Notifier*)IT_pp)->send_disconnect ( reason, IT_env);
-
- delete [] reason;
- IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env);
- return 1;
- }
-
- else if (!strcmp(IT_s,"send_notification")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~send_notification~+notification{R~Event_Comm::Notification~tag_{0}},>{v},O{}\
-"))
- return 1;
- Event_Comm::Notification notification;
- notification.decodeOp (IT_r);
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((Event_Comm::Notifier*)IT_pp)->send_notification ( notification, IT_env);
-
- IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env);
- return 1;
- }
-
- else if (!strcmp(IT_s,"subscribe")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~subscribe~+notification_receiver{O~Event_Comm::Notification_Receiver},+filtering_criteria{0},>{v},O{}\
-"))
- return 1;
- Event_Comm::Notification_Receiver* notification_receiver;
- notification_receiver = (Event_Comm::Notification_Receiver*) IT_r.decodeObjRef (Event_Comm_Notification_Receiver_IR);
- if (notification_receiver) notification_receiver->_duplicate ();
-
- char * filtering_criteria;
- IT_r.decodeStringOp(filtering_criteria);
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((Event_Comm::Notifier*)IT_pp)->subscribe ( notification_receiver, filtering_criteria, IT_env);
-
- if (notification_receiver) notification_receiver->_release ();
-
- delete [] filtering_criteria;
- IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env);
-
- return 1;
- }
-
- else if (!strcmp(IT_s,"unsubscribe")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~unsubscribe~+notification_receiver{O~Event_Comm::Notification_Receiver},+filtering_criteria{0},>{v},O{}\
-"))
- return 1;
- Event_Comm::Notification_Receiver* notification_receiver;
- notification_receiver = (Event_Comm::Notification_Receiver*) IT_r.decodeObjRef (Event_Comm_Notification_Receiver_IR);
- if (notification_receiver) notification_receiver->_duplicate ();
-
- char * filtering_criteria;
- IT_r.decodeStringOp(filtering_criteria);
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((Event_Comm::Notifier*)IT_pp)->unsubscribe ( notification_receiver, filtering_criteria, IT_env);
-
- if (notification_receiver) notification_receiver->_release ();
-
- delete [] filtering_criteria;
- IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env);
-
- return 1;
- }
-
- else if (IT_isTarget)
- IT_r.makeRuntimeException2 ();
-
- return 0;
-}
-
-#include "Event_CommC.cpp"
-
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h b/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h
deleted file mode 100644
index 430af42ae63..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Event_Comm_i.h
-//
-// = DESCRIPTION
-// Class interface for the implementation of the distributed
-// event notification mechanism.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#if !defined (_EVENT_COMM_I_H)
-#define _EVENT_COMM_I_H
-
-#include "Notification_Receiver_i.h"
-#include "Notifier_i.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-#define nil 0
-
-// Tie the Notification_Receiver and Notifier implementation classes
-// together with the IDL interface.
-
-DEF_TIE_Event_Comm_Notification_Receiver (Notification_Receiver_i)
-DEF_TIE_Event_Comm_Notifier (Notifier_i)
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _EVENT_COMM_I_H */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Makefile b/apps/Orbix-Examples/Event_Comm/libsrc/Makefile
deleted file mode 100644
index 42c32b7c81b..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Makefile
+++ /dev/null
@@ -1,113 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Event Communications library
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-LIB = libEvent_Comm.a
-SHLIB = libEvent_Comm.so
-
-FILES = Event_CommS \
- Event_CommC \
- Notifier_i \
- Notification_Receiver_i
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(addsuffix .o,$(FILES))
-SHOBJ = $(addsuffix .so,$(FILES))
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-BUILD = $(VLIB)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Orbix related macros and target settings.
-#----------------------------------------------------------------------------
-
-ORBIX_BINDIR = $(ORBIX_ROOT)/bin
-ORBIX_LIBDIR = $(ORBIX_ROOT)/lib
-ORBIX_INCDIR = $(ORBIX_ROOT)/include
-
-CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS
-LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR)
-
-IDLFLAGS = -A -s S.cpp -c C.cpp
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-Event_CommS.o: Event_CommS.cpp Event_Comm.hh Event_CommC.cpp
-Event_CommC.o: Event_CommC.cpp Event_Comm.hh
-Notifier_i.o: Notifier_i.cpp \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- Notification_Receiver_i.h Notifier_i.h \
- ${ACE_ROOT}ace/Map_Manager.h \
- ${ACE_ROOT}ace/SString.h \
- ${ACE_ROOT}ace/SString.i \
- Event_Comm.hh
-Notification_Receiver_i.o: Notification_Receiver_i.cpp \
- ${ACE_ROOT}ace/Log_Msg.h \
- ${ACE_ROOT}ace/Log_Record.h \
- ${ACE_ROOT}ace/sysincludes.h \
- ${ACE_ROOT}ace/config.h \
- ${ACE_ROOT}ace/Log_Priority.h \
- ${ACE_ROOT}ace/Log_Record.i \
- ${ACE_ROOT}ace/Log_Msg.i \
- ${ACE_ROOT}ace/Thread_Specific.h \
- ${ACE_ROOT}ace/Synch.h \
- ${ACE_ROOT}ace/Time_Value.h \
- ${ACE_ROOT}ace/Synch_T.h \
- ${ACE_ROOT}ace/Thread_Specific.i \
- ${ACE_ROOT}ace/Service_Config.h \
- ${ACE_ROOT}ace/Reactor.h \
- ${ACE_ROOT}ace/Handle_Set.h \
- ${ACE_ROOT}ace/Handle_Set.i \
- ${ACE_ROOT}ace/Timer_Queue.h \
- ${ACE_ROOT}ace/Event_Handler.h \
- ${ACE_ROOT}ace/Timer_Queue.i \
- ${ACE_ROOT}ace/Signal.h \
- ${ACE_ROOT}ace/Set.h \
- ${ACE_ROOT}ace/Thread.h \
- ${ACE_ROOT}ace/Token.h \
- ${ACE_ROOT}ace/Reactor.i \
- ${ACE_ROOT}ace/Service_Object.h \
- ${ACE_ROOT}ace/Shared_Object.h \
- ${ACE_ROOT}ace/Service_Types.h \
- ${ACE_ROOT}ace/Thread_Manager.h \
- Notification_Receiver_i.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl b/apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl
deleted file mode 100644
index b4dbd690262..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// @(#)Notification.idl 1.1 10/18/96
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notification.idl
-//
-// = DESCRIPTION
-// This is the CORBA IDL interface for the Event Communication <Notification>.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _NOTIFICATION_IDL
-#define _NOTIFICATION_IDL
-
-struct Notification
- // = TITLE
- // Defines the interface for an event <Notification>.
- //
- // = This is the type passed by the Notifier to the Notification_Receiver.
- // Since it contains an <any>, it can hold any values. Naturally,
- // the consumer must understand how to interpret this!
-{
- string tag_;
- // Tag for the notification.
-
-// any value_;
- // A notification can contain anything.
-
- Object object_ref_;
- // Object reference for callbacks.
-};
-
-#endif /* _NOTIFICATION_IDL */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl b/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl
deleted file mode 100644
index 24af1d044ea..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// @(#)Notification_Receiver.idl 1.1 10/18/96
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notification_Receiver.idl
-//
-// = DESCRIPTION
-// The CORBA IDL interface for the Event Communication
-// <Notification_Receiver> component.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#include "Notification.idl"
-
-#ifndef _Notification_Receiver_iDL
-#define _Notification_Receiver_iDL
-
-interface Notification_Receiver
- // = TITLE
- // Defines the interface for a <Notification_Receiver> of events.
- // Note that all operations are <oneway> to avoid blocking.
- //
- // = DESCRIPTION
-{
- oneway void receive_notification (in Notification notification);
- // Inform the <Notification_Receiver> that <event> has occurred.
-
- oneway void disconnect (in string reason);
- // Disconnect the <Notification_Receiver> from the <Notifier>,
- // giving it the <reason>.
-};
-
-#endif /* _Notification_Receiver_iDL */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp b/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp
deleted file mode 100644
index 938ac8eb7c8..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-// $Id$
-
-#include "ace/Service_Config.h"
-#include "Notification_Receiver_i.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-Notification_Receiver_i::Notification_Receiver_i (void)
-{
-}
-
-Notification_Receiver_i::~Notification_Receiver_i (void)
-{
-}
-
-// Inform the <Event_Comm::Notification_Receiver> that <event> has occurred.
-
-void
-Notification_Receiver_i::receive_notification
- (const Event_Comm::Notification &notification,
- CORBA::Environment &IT_env)
-{
- const char *tmpstr = notification.tag_;
-
- ACE_DEBUG ((LM_DEBUG, "**** got notification = %s\n", tmpstr));
-}
-
-// Disconnect the <Event_Comm::Notification_Receiver> from the <Event_Comm::Notifier>.
-
-void
-Notification_Receiver_i::disconnect (const char *reason,
- CORBA::Environment &IT_env)
-{
- ACE_DEBUG ((LM_DEBUG, "**** got disconnected due to %s\n", reason));
- ACE_Reactor::end_event_loop();
-}
-
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h b/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h
deleted file mode 100644
index eb5efa718dd..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notification_Receiver__i.h
-//
-// = DESCRIPTION
-// Class interface for the implementation of the <Notification_Receiver>
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#if !defined (_Notification_Receiver_i_H)
-#define _Notification_Receiver_i_H
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-#include "Event_Comm.hh"
-
-class Notification_Receiver_i
- // = TITLE
- // Defines the implementation class for event <Notification_Receivers>.
- //
- // = DESCRIPTION
-{
-public:
- Notification_Receiver_i (void);
- ~Notification_Receiver_i (void);
-
- virtual void receive_notification (const Event_Comm::Notification &notification,
- CORBA::Environment &IT_env);
- // Pass the <Notification> to the <Notification_Receiver>.
-
- virtual void disconnect (const char *reason,
- CORBA::Environment &IT_env);
- // Disconnect the <Notification_Receiver> from the <Notifier>,
- // giving it the <reason>.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _Notification_Receiver_i_H */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl b/apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl
deleted file mode 100644
index 5c1b949fb95..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl
+++ /dev/null
@@ -1,51 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// @(#)Notifier.idl 1.1 10/18/96
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notifier.idl
-//
-// = DESCRIPTION
-// This is the CORBA IDL interface for the Event Communication <Notifier>.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _Notifier_iDL
-#define _Notifier_iDL
-
-#include "Notification.idl"
-#include "Notification_Receiver.idl"
-
-interface Notifier
- // = TITLE
- // Defines the interface for a <Notifier> of events.
- //
- // = DESCRIPTION
-{
- oneway void send_disconnect (in string reason);
- // Disconnect all the receivers, giving them the <reason>.
-
- oneway void send_notification (in Notification notification);
- // Send the <Notification> to all the consumers who
- // have subscribed and who match the filtering criteria.
-
- oneway void subscribe (in Notification_Receiver notification_receiver,
- in string filtering_criteria);
- // Subscribe the <Notification_Receiver> to receive events that
- // match <filtering_criteria> applied by the <Notifier>.
-
- oneway void unsubscribe (in Notification_Receiver notification_receiver);
- // Unsubscribe the <Notification_Receiver>.
-};
-
-#endif /* _Notifier_iDL */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp b/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp
deleted file mode 100644
index 59d311c50d7..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp
+++ /dev/null
@@ -1,324 +0,0 @@
-
-// $Id$
-
-#include "Notification_Receiver_i.h"
-#include "Notifier_i.h"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-class Notification_Receiver_Entry
- // = TITLE
- // Keeps track of context information associated with
- // a <Event_Comm::Notification_Receiver> entry.
- //
- // = DESCRIPTION
- //
-{
-public:
- Notification_Receiver_Entry (Event_Comm::Notification_Receiver *notification_receiver,
- const char *filtering_criteria);
- ~Notification_Receiver_Entry (void);
-
- // = Set/get filtering criteria.
- void criteria (const char *criteria);
- const char *criteria (void);
-
- // = Set/get Event_Comm::Notification_Receiver object reference.
- Event_Comm::Notification_Receiver *receiver (void);
- void receiver (Event_Comm::Notification_Receiver *);
-
- // = Set/get the compiled regular expression buffer.
- const char *regexp (void);
- void regexp (char *);
-
-private:
- const char *filtering_criteria_;
- // String containing the filtering criteria.
-
- char *compiled_regexp_;
- // Compiled representation of the regular expression (see
- // regexpr(3g)).
-
- Event_Comm::Notification_Receiver *receiver_;
- // Object reference for the Event_Comm::Notification_Receiver.
-};
-
-// = Set/get filtering criteria.
-
-void
-Notification_Receiver_Entry::criteria (const char *criteria)
-{
- ACE_OS::free (ACE_MALLOC_T (this->filtering_criteria_));
- this->filtering_criteria_ = ACE_OS::strdup (criteria);
-}
-
-const char *
-Notification_Receiver_Entry::criteria (void)
-{
- return this->filtering_criteria_;
-}
-
-// = Set/get Event_Comm::Notification_Receiver object reference.
-
-Event_Comm::Notification_Receiver *
-Notification_Receiver_Entry::receiver (void)
-{
- return this->receiver_;
-}
-
-void
-Notification_Receiver_Entry::receiver (Event_Comm::Notification_Receiver *receiver)
-{
- this->receiver_ = receiver;
-}
-
-const char *
-Notification_Receiver_Entry::regexp (void)
-{
- return this->compiled_regexp_;
-}
-
-void
-Notification_Receiver_Entry::regexp (char *regexp)
-{
- ACE_OS::free (ACE_MALLOC_T (this->compiled_regexp_));
- this->compiled_regexp_ = regexp;
-}
-
-Notification_Receiver_Entry::Notification_Receiver_Entry (Event_Comm::Notification_Receiver *receiver,
- const char *filtering_criteria)
- : receiver_ (receiver),
- filtering_criteria_ (0),
- compiled_regexp_ (0)
-{
- char *compile_buffer = 0;
-
- this->criteria (filtering_criteria);
- ACE_ASSERT (this->criteria ());
-
- // Check for wildcard case first.
- if (ACE_OS::strcmp (filtering_criteria, "") == 0)
- compile_buffer = ACE_OS::strdup ("");
- else // Compile the regular expression (the 0's cause ACE_OS::compile to allocate space).
- compile_buffer = ACE_OS::compile (filtering_criteria, 0, 0);
-
- // Should throw an exception here!
- ACE_ASSERT (compile_buffer != 0);
-
- this->regexp (compile_buffer);
- ACE_ASSERT (this->regexp ());
-
- // Increment the reference count since we are keeping a copy of
- // this...
- this->receiver_->_duplicate (this->receiver_);
-}
-
-Notification_Receiver_Entry::~Notification_Receiver_Entry (void)
-{
- ACE_OS::free (this->filtering_criteria_);
- ACE_OS::free (this->compiled_regexp_);
- // Decrement the object reference count.
- CORBA::release (this->receiver_);
-}
-
-Notifier_i::Notifier_i (size_t size)
- : map_ (size)
-{
-}
-
-// Add a new receiver to the table, being careful to check for
-// duplicate entries. A receiver is considered a duplicate under
-// the following circumstances:
-// 1. It has the same marker name and the same filtering criteria
-// 2. It has the same marker name and its filtering criteria is "" (the wild card).
-
-void
-Notifier_i::subscribe (Event_Comm::Notification_Receiver *receiver_ref,
- const char *filtering_criteria,
- CORBA::Environment &IT_env)
-{
- ACE_DEBUG ((LM_DEBUG,
- "in Notifier_i::subscribe for %s with filtering criteria \"%s\"\n",
- receiver_ref->_marker (), filtering_criteria));
- ACE_SString key (receiver_ref->_marker ());
- MAP_ITERATOR mi (this->map_);
-
- // Try to locate an entry using its marker name (which should be
- // unique across the system). If we don't find the entry, or if the
- // filtering criteria is different that is good news since we
- // currently don't allow duplicates... In particular, if @@ Should
- // duplicates be allowed?
-
- for (MAP_ENTRY *me = 0; mi.next (me) != 0; mi.advance ())
- {
- Notification_Receiver_Entry *nr_entry = me->int_id_;
-
- // Check for a duplicate entry.
- if (key == me->ext_id_
- && (ACE_OS::strcmp (filtering_criteria, "") == 0
- || ACE_OS::strcmp (filtering_criteria, nr_entry->criteria ()) == 0))
- {
- // Inform the caller that the
- // Event_Comm::Notification_Receiver * is already being
- // used.
-
- errno = EADDRINUSE;
- ACE_ERROR ((LM_ERROR,
- "duplicate entry for receiver %s with criteria \"%s\"",
- receiver_ref->_marker (), filtering_criteria));
- // Raise exception here???
- return;
- }
- }
-
- // If we get this far then we didn't find a duplicate, so add the
- // new entry!
- Notification_Receiver_Entry *nr_entry =
- new Notification_Receiver_Entry (receiver_ref, filtering_criteria);
-
- if (nr_entry == 0)
- {
- errno = ENOMEM;
- ACE_ERROR ((LM_ERROR, "%p\n", "new failed"));
- // Raise exception here...
- }
- // Try to add new <Notification_Receiver_Entry> to the map.
- else if (this->map_.bind (key, nr_entry) == -1)
- {
- // Prevent memory leaks.
- delete nr_entry;
- // Raise exception here...
- ACE_ERROR ((LM_ERROR, "%p\n", "bind failed"));
- }
-}
-
-// Remove a receiver from the table.
-
-void
-Notifier_i::unsubscribe (Event_Comm::Notification_Receiver *receiver_ref,
- const char *filtering_criteria,
- CORBA::Environment &IT_env)
-{
- ACE_DEBUG ((LM_DEBUG, "in Notifier_i::unsubscribe for %s\n",
- receiver_ref->_marker ()));
- Notification_Receiver_Entry *nr_entry = 0;
- ACE_SString key;
- MAP_ITERATOR mi (this->map_);
- int found = 0;
-
- // Don't make a copy since we are deleting...
- key.rep ((char *) receiver_ref->_marker ());
-
- // Locate <Notification_Receiver_Entry> and free up resources. @@
- // Note, we don't properly handle deallocation of KEYS!
-
- for (MAP_ENTRY *me = 0; mi.next (me) != 0; mi.advance ())
- {
- if (key == me->ext_id_
- && (ACE_OS::strcmp (filtering_criteria, "") == 0
- || ACE_OS::strcmp (filtering_criteria, nr_entry->criteria ()) == 0))
- {
- ACE_DEBUG ((LM_DEBUG, "removed entry %s with criteria \"%s\"\n",
- receiver_ref->_marker (), filtering_criteria));
- found = 1;
- // @@ This is a hack, we need a better approach!
- if (this->map_.unbind (key, nr_entry) == -1)
- ACE_ERROR ((LM_ERROR, "unbind failed for %s\n",
- receiver_ref->_marker ()));
- else
- delete nr_entry;
- }
- }
-
- if (found == 0)
- ACE_ERROR ((LM_ERROR, "entry %s with criteria \"%s\" not found\n",
- receiver_ref->_marker (), filtering_criteria));
-}
-
-// Disconnect all the receivers, giving them the <reason>.
-
-void
-Notifier_i::send_disconnect (const char *reason,
- CORBA::Environment &IT_env)
-{
- ACE_DEBUG ((LM_DEBUG, "in Notifier_i::send_disconnect = %s\n", reason));
-
- MAP_ITERATOR mi (this->map_);
- int count = 0;
-
- // Notify all the receivers, taking into account the filtering criteria.
-
- for (MAP_ENTRY *me = 0; mi.next (me) != 0; mi.advance ())
- {
- Event_Comm::Notification_Receiver *receiver_ref = me->int_id_->receiver ();
- ACE_ASSERT (receiver_ref->_marker () != 0);
- ACE_DEBUG ((LM_DEBUG, "disconnecting client %s\n", receiver_ref->_marker ()));
- TRY {
- receiver_ref->disconnect (reason, IT_X);
- }
- CATCHANY {
- cerr << "Unexpected exception " << IT_X << endl;
- }
- ENDTRY;
- delete me->int_id_;
- delete me->ext_id_.rep ();
- count++;
- }
-
- this->map_.close ();
- if (count == 1)
- ACE_DEBUG ((LM_DEBUG, "there was 1 receiver\n"));
- else
- ACE_DEBUG ((LM_DEBUG, "there were %d receivers\n", count));
-}
-
-// Notify all receivers whose filtering criteria match the event.
-
-void
-Notifier_i::send_notification (const Event_Comm::Notification &notification,
- CORBA::Environment &IT_env)
-{
- ACE_DEBUG ((LM_DEBUG, "in Notifier_i::send_notification = %s\n",
- notification.tag_));
- MAP_ITERATOR mi (this->map_);
- int count = 0;
-
- // Notify all the receivers.
- // @@ Later on we need to consider the filtering_criteria!
-
- for (MAP_ENTRY *me = 0; mi.next (me) != 0; mi.advance ())
- {
- Event_Comm::Notification_Receiver *receiver_ref = me->int_id_->receiver ();
- ACE_ASSERT (receiver_ref->_marker () != 0);
- const char *regexp = me->int_id_->regexp ();
- const char *criteria = me->int_id_->criteria ();
- ACE_ASSERT (regexp);
- ACE_ASSERT (criteria);
-
- // Do a regular expression comparison to determine matching.
- if (ACE_OS::strcmp ("", criteria) == 0 // Everything matches the wildcard.
-// || ACE_OS::strcmp (notification.tag_, regexp) == 0)
- || ACE_OS::step (notification.tag_, regexp) != 0)
- {
- ACE_DEBUG ((LM_DEBUG, "string %s matched regexp \"%s\" for client %s\n",
- notification.tag_, me->int_id_->criteria (),
- receiver_ref->_marker ()));
- TRY {
- receiver_ref->receive_notification (notification, IT_X);
- }
- CATCHANY {
- cerr << "Unexpected exception " << IT_X << endl;
- continue;
- }
- ENDTRY;
- count++;
- }
- }
-
- if (count == 1)
- ACE_DEBUG ((LM_DEBUG, "there was 1 receiver\n"));
- else
- ACE_DEBUG ((LM_DEBUG, "there were %d receivers\n", count));
-}
-
-#endif /* ACE_HAS_ORBIX */
diff --git a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h b/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h
deleted file mode 100644
index 5e7ac590f37..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notifier_i.h
-//
-// = DESCRIPTION
-// Class interface for the implementation of the <Notifier>
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#if !defined (_Notifier_i_H)
-#define _Notifier_i_H
-
-#include "ace/Map_Manager.h"
-#include "ace/Synch.h"
-#include "ace/SString.h"
-#include "Event_Comm.hh"
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-// Forward reference.
-class Notification_Receiver_Entry;
-
-class Notifier_i
- // = TITLE
- // Defines the implementation class for event <Notifiers>.
- //
- // = DESCRIPTION
-{
-public:
- enum
- {
- DEFAULT_SIZE = 1024 // Default max number of Event_Comm::Notification_Receivers.
- };
-
- Notifier_i (size_t size_hint = Notifier_i::DEFAULT_SIZE);
- // Initialize a Notifier_i object with the specified size hint.
-
- void send_disconnect (const char *reason,
- CORBA::Environment &IT_env);
- // Disconnect all the receivers, giving them the <reason>.
-
- void send_notification (const Event_Comm::Notification &notification,
- CORBA::Environment &IT_env);
- // Send the <Notification> to all the consumers who
- // have subscribed and who match the filtering criteria.
-
- void subscribe (Event_Comm::Notification_Receiver *notification_receiver,
- const char *filtering_criteria,
- CORBA::Environment &IT_env);
- // Subscribe the <Notification_Receiver> to receive events that
- // match <filtering_criteria> applied by the <Notifier>.
-
- void unsubscribe (Event_Comm::Notification_Receiver *notification_receiver,
- const char *filtering_criteria,
- CORBA::Environment &IT_env);
- // Unsubscribe the <Notification_Receiver>.
-
-private:
- // The following implementation should be replaced
- // by a standard container class from STL...
-
- typedef ACE_Map_Manager <ACE_SString, Notification_Receiver_Entry *, ACE_Null_Mutex> MAP_MANAGER;
- typedef ACE_Map_Iterator <ACE_SString, Notification_Receiver_Entry *, ACE_Null_Mutex> MAP_ITERATOR;
- typedef ACE_Map_Entry <ACE_SString, Notification_Receiver_Entry *> MAP_ENTRY;
-
- MAP_MANAGER map_;
- // Table that maps a <Event_Comm::Notification_Receiver *> to a <Notification_Receiver_Entry *>.
-};
-
-#endif /* ACE_HAS_ORBIX */
-#endif /* _Notifier_i_H */
diff --git a/apps/Orbix-Examples/Logger/Logger.cpp b/apps/Orbix-Examples/Logger/Logger.cpp
deleted file mode 100644
index e5a9f4b76ef..00000000000
--- a/apps/Orbix-Examples/Logger/Logger.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-#include <iostream.h>
-// $Id$
-
-#include "Logger.h"
-
-Logger::~Logger (void)
-{
- // Release and free up the object reference.
- this->logref_->_release ();
-
- // Must use free since we used strdup(3C).
- ACE_OS::free (ACE_MALLOC_T (this->server_));
-}
-
-// Constructor takes the name of the host where the server
-// is located. If server == 0, then use the locator service.
-
-Logger::Logger (char *server, size_t max_message_size)
- : server_ (server == 0 ? 0 : ACE_OS::strdup (server)),
- ip_ (0),
- pid_ (ACE_OS::getpid ())
-{
- struct utsname name;
-
-#if 0
- // Could also use sysinfo(2)...
-
- ACE_OS::sysinfo (SI_HOSTNAME, clienthost, MAXHOSTNAMELEN);
-#endif
-
- ACE_OS::uname (&name);
- hostent *hp = ACE_OS::gethostbyname (name.nodename);
-
- if (hp != 0)
- memcpy ((void *) &this->ip_, (void *) hp->h_addr, hp->h_length);
-
- TRY {
- // First bind to the logger object.
- // argv[1] has the hostname (if any) of the target logger object;
- // The default is the local host:
- this->logref_ = profile_logger::_bind ("", this->server_, IT_X);
- } CATCHANY {
- // an error occurred while trying to bind to the logger object.
- cerr << "Bind to object failed" << endl;
- cerr << "Unexpected exception " << IT_X << endl;
- } ENDTRY;
- // Pre-assign certain values that don't change.
- this->log_msg_.app_id = this->pid_;
- this->log_msg_.host_addr = this->ip_;
- this->log_msg_.msg_data._maximum = max_message_size;
-}
-
-// Transmit the message to the logging server.
-
-int
-Logger::log (logger::Log_Priority priority, char message[], int length)
-{
- // The following values change with every logging operation.
- this->log_msg_.type = priority;
- this->log_msg_.time = ACE_OS::time (0);
- this->log_msg_.msg_data._length = length;
- this->log_msg_.msg_data._buffer = message;
-
- TRY {
- // Try to log a message.
- this->logref_->log (this->log_msg_, IT_X);
- } CATCHANY {
- // an error occurred while trying to read the height and width:
- cerr << "call to log failed" << endl;
- cerr << "Unexpected exception " << IT_X << endl;
- return -1;
- } ENDTRY;
- // success.
- return 0;
-}
-
-// Get the value of verbose.
-
-int
-Logger::verbose (void)
-{
- int verbosity = 0;
-
- TRY {
- verbosity = this->logref_->verbose ();
- } CATCHANY {
- return -1;
- } ENDTRY;
- return verbosity;
-}
-
-// Set the value of verbose.
-
-int
-Logger::verbose (int value)
-{
- int verbosity = 0;
-
- TRY {
- this->logref_->verbose (value);
- } CATCHANY {
- return -1;
- } ENDTRY;
- return 0;
-}
-
-// Activate the timer.
-
-int
-Logger::start_timer (void)
-{
- TRY {
- this->logref_->start_timer ();
- } CATCHANY {
- return -1;
- } ENDTRY;
- return 0;
-}
-
-// Deactivate the timer and return the elapsed time.
-
-int
-Logger::stop_timer (profile_logger::Elapsed_Time &et)
-{
- TRY {
- this->logref_->stop_timer (et);
- } CATCHANY {
- return -1;
- } ENDTRY;
- return 0;
-}
diff --git a/apps/Orbix-Examples/Logger/Logger.h b/apps/Orbix-Examples/Logger/Logger.h
deleted file mode 100644
index 5832c96aab6..00000000000
--- a/apps/Orbix-Examples/Logger/Logger.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-#if !defined (_LOGGER_H)
-#define _LOGGER_H
-
-#include "ace/OS.h"
-#include "logger.hh"
-
-class Logger
- // = TITLE
- // Wrapper class that uses CORBA object reference
- // as the transport mechanism to simplify implementation.
-{
-public:
- Logger (char *server, size_t max_message_size);
- // Constructor takes the name of the host where the server
- // is located. If server == 0, then use the locator service.
-
- ~Logger (void);
- // Destructor releases the object reference.
-
- int log (logger::Log_Priority prio, char msg[], int len);
- // Log a <msg> of length <len> with priority <prio>.
-
- int verbose (void);
- // Report current level of verbosity.
-
- int verbose (int verbosity);
- // Set the level of verbosity (0 == no verbose, > 0 == verbose).
-
- int start_timer (void);
- // Activate the timer.
-
- int stop_timer (profile_logger::Elapsed_Time &et);
- // Deactivate the timer and return the elapsed time.
-
-private:
- profile_logger *logref_;
- // CORBA object reference proxy.
-
- int pid_;
- // Process ID.
-
- u_long ip_;
- // IP address of self.
-
- logger::Log_Record log_msg_;
- // Cache certain non-changing values to avoid recomputing them.
-
- char *server_;
- // Name of server that we are bound to.
-};
-
-#endif /* _LOGGER_H */
diff --git a/apps/Orbix-Examples/Logger/Makefile b/apps/Orbix-Examples/Logger/Makefile
deleted file mode 100644
index 2feca6307a6..00000000000
--- a/apps/Orbix-Examples/Logger/Makefile
+++ /dev/null
@@ -1,63 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Logger.
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-SVR_OBJS = loggerS.o logger_i.o server.o
-CLT_OBJS = loggerC.o client.o Logger.o
-
-LDLIBS =
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Orbix related macros and target settings.
-#----------------------------------------------------------------------------
-
-ORBIX_BINDIR = $(ORBIX_ROOT)/bin
-ORBIX_LIBDIR = $(ORBIX_ROOT)/lib
-ORBIX_INCDIR = $(ORBIX_ROOT)/include
-
-CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS
-LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR)
-
-IDLFLAGS = -s S.cpp -c C.cpp -B
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-all: client server
-
-client: $(addprefix $(VDIR),$(CLT_OBJS))
- $(LINK.cc) -o client $(addprefix $(VDIR),$(CLT_OBJS)) $(LDFLAGS) -lITsrvmt $(VLDLIBS)
-
-server: $(addprefix $(VDIR),$(SVR_OBJS))
- $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) -lITsrvmt $(VLDLIBS)
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/Orbix-Examples/Logger/Orbix.hostgroups b/apps/Orbix-Examples/Logger/Orbix.hostgroups
deleted file mode 100644
index 013636e79c4..00000000000
--- a/apps/Orbix-Examples/Logger/Orbix.hostgroups
+++ /dev/null
@@ -1 +0,0 @@
-all:tango
diff --git a/apps/Orbix-Examples/Logger/Orbix.hosts b/apps/Orbix-Examples/Logger/Orbix.hosts
deleted file mode 100644
index 2e11d889bed..00000000000
--- a/apps/Orbix-Examples/Logger/Orbix.hosts
+++ /dev/null
@@ -1,3 +0,0 @@
-profile_logger:tango:
-logger:tango:
-IT_daemon:tango:
diff --git a/apps/Orbix-Examples/Logger/README b/apps/Orbix-Examples/Logger/README
deleted file mode 100644
index 19b1db681f2..00000000000
--- a/apps/Orbix-Examples/Logger/README
+++ /dev/null
@@ -1,35 +0,0 @@
-The directory contains the source code that implements an Orbix
-version of the distributed Logger. Other ACE versions of this code
-appear in the ./apps/Logger directory. It is interesting to compare
-and contrast the alternative implementations.
-
-RUNNING:
-
-The client is run as follows:
-
-client -h host -m max_message_size
-
-The -h host is optional if the locator service is properly configured.
-The -m specifies the maximum number of kilobytes to be sent per log. This
-is useful when redirecting messages to stdin.
-
-TIMING:
-
-I recommend timing the log's by specifying a max_message_size and
-redirecting /usr/dict/words. This will give you several trials from
-which to take an average.
-
-CLIENT:
-
-While using the client and typing in messages manually, capital Q and V
-must be used to quit and toggle verbose respectively. This allows you
-to redirect /usr/dict/words without quiting at the q's!!
-
-SERVER:
-
-To turn off message reporting on the server side, do a
-
-setenv NO_MESSAGES
-
-in the enviroment where the server will be run. If this is done, the server
-will only report that a message was received, but not display the messages.
diff --git a/apps/Orbix-Examples/Logger/a1.tex b/apps/Orbix-Examples/Logger/a1.tex
deleted file mode 100644
index 5d10042e26e..00000000000
--- a/apps/Orbix-Examples/Logger/a1.tex
+++ /dev/null
@@ -1,232 +0,0 @@
-\documentstyle[times,11pt,moretext] {article}
-\input macros
-\input widen
-\input psfig
-
-\begin{document}
-\centerline{\Large Washington University}
-\centerline{\Large Department of Computer Science}
-\bigskip
-\centerline{\large CS523: Distributed Operating Systems}
-%\smallskip
-%\centerline{\large Spring 1995}
-\bigskip
-\centerline{\large Programming Project}
-% \centerline{\large Due Tuesday, January $31^{st}$, 1995}
-
-\section{Overview}
-
-In this assignment, you will implement a distributed logging service
-shown in Figure~\ref{logenv}. Applications use this service to log
-information (such as error notifications, debugging traces, and status
-updates) in a distributed environment. In this service, CORBA remote
-operations are used to send logging records to a central logging
-server. The logging server outputs the logging records to a console,
-a printer, a file, or a network management database, etc.
-
-\section{Design and Implementation Issues}
-
-The distributed logging service will be designed as a client/server
-pair, containing the objects shown in Figure~\ref{simplog}.
-
-\subsection{CORBA IDL Specification}
-The following CORBA IDL specification defines the logging interface:
-
-{
-\small
-\ls{0.9}
-\begin{verbatim}
-// IDL schema definition
-interface Logger
-{
- // Types of logging messages.
- enum Log_Priority {
- LM_DEBUG, // Debugging messages
- LM_WARNING, // Warning messages
- LM_ERROR, // Errors
- LM_EMERG // A panic condition
- };
-
- // Format of the logging record.
- struct Log_Record {
- Log_Priority type; // Type of logging message.
- long time; // Time stamp at sender.
- long app_id; // Process ID of sender.
- long host_addr; // IP address of the sender.
- sequence<char> msg_data; // Sender-specific logging message.
- };
-
- // Transmit a Log_Record to the logging server.
- oneway void log (in Log_Record log_rec);
-
- // Toggle verbose formatting
- attribute char verbose;
-};
-\end{verbatim}}
-
-\begin{figure}
-\center{\ \psfig{figure=graphics/logsimp.eps,width=13cm}\ }
-\vspace{-0.12in}
-\caption{Distributed Logging Service}
-\label{logenv}
-\end{figure}
-
-You will use a CORBA IDL compiler to translate this specification into
-client-side {\em stubs} and server-side {\em skeletons}. The client
-application (which you must write) will use the stubs as a {\em proxy}
-to access the logging services provided by the server. You must also
-write the implementation of the server, which provides the logging
-service.
-
-\subsection{Client and Server Functionality}
-For the purposes of the assignment, you can make the client driver
-program very simple. The client can read a line from its standard
-input and send it to the logging server. The server can then format
-and print the line on its standard output. For example, if you type
-this line to the client:
-
-\begin{verbatim}
-To boldly go where no one has gone before
-\end{verbatim}
-
-\noindent Then the server should output something like this:
-
-\begin{verbatim}
-Jan 24 14:50:28 1995@tango.cs.wustl.edu@18352@LM_DEBUG
-::To boldly go where no one has gone before
-\end{verbatim}
-
-\noindent Note that the server has printed out the logging message
-timestamp, sender's hostname and process id, and the message priority,
-followed by the logging message data.
-
-\begin{figure}
-\center{\ \psfig{figure=graphics/simplog.eps,width=13cm}\ }
-\vspace{-0.12in}
-\caption{CORBA-based Logger Design}
-\label{simplog}
-\end{figure}
-
-Note that in order to pass the client's IP address (which is
-represented as a 4-byte {\tt long}) in the logging message, you'll
-need to learn about several other UNIX routines. On the client-side
-you'll need to use {\tt uname(2)} and {\tt gethostbyname(2)} to
-determine the IP address of the client host. On the server-side,
-you'll need to use the {\tt gethostbyaddr(2)} function to convert the
-4-byte IP host address into an ASCII version of the host name. I
-recommend that you check the manual pages and read Richard Steven's
-book ``UNIX Network Programming'' for more details on using these
-functions.
-
-\subsection{Invoking the Client and Server}
-Once the client and server components are written, compiled, and
-linked together you will use the {\tt putit} command to register the
-server with the Orbix daemon. You'll then need to start up a copy of
-{\tt orbixd} (if there isn't already one running). {\tt orbixd}
-serves as the Object Request Broker for the local endpoint.
-
-A client will bind to the {\tt Logger} interface via the generated
-{\tt Logger::\_bind} method. There are two general ways to use this
-method. The first is to explicitly pass in the name of the server
-where {\tt orbixd} is running (your client should accept a
-command-line argument that is the name of the server, {\em e.g.,}
-``tango.cs.wustl.edu'').
-
-The second method is to use the CORBA locator service to get an object
-reference for the logging service. You'll need to read the Orbix
-documentation to learn how to set up a location file. This file will
-enable you to omit the name of the server in the call to {\tt
-Logger::\_bind}. By using the locator server, your clients can bind
-to object's implicitly. Make sure that your solution will work for
-either implicit or explicit service location.
-
-Once the client application has bound (either explicitly or
-implicitly) to an object reference for the {\tt Logger}, it can log
-messages by calling the {\tt log} method via the object reference
-proxy.
-
-\subsection{Performance Measurement}
-
-An important part of developing distributed systems is understanding
-the performance implications of different design approaches. In order
-to measure the performance overhead of using CORBA to build the
-Logger, you will write a simple extension to the original {\tt Logger}
-interface, as follows:
-
-{
-\small
-\ls{0.9}
-\begin{verbatim}
-// IDL schema definition
-interface Profile_Logger
- : Logger // Profile_Logger IS-A Logger
-{
- // Stores the amount of time that has elapsed.
- struct Elapsed_Time
- {
- double real_time;
- double user_time;
- double system_time;
- };
-
- // Activate the timer.
- void start_timer (void);
-
- // Deactivate the timer and return the elapsed time.
- void stop_timer (out Elapsed_Time et);
-};
-\end{verbatim}}
-
-\noindent You will need to modify your client program so that it can
-time a series of {\tt Logger::log} operations for various sizes of
-logging messages. This will help us understand the performance
-overhead of CORBA.
-
-The main benchmarking should take place within a loop in your client
-program. Basically, your client call {\tt
-Profile\_Logger::start\_timer} just before sending the first of the
-logging messages. After a suitable number of iterations (defined on
-the command-line), you client will call {\tt
-Profile\_Logger::stop\_timer} to determine and report the elapsed time
-to the user. You should print out the ``real'' time, as well as the
-``system $+$ user'' times. Make sure that you print out the
-throughput in terms of megabits/sec (rather than bytes/sec or
-kbytes/sec). Be sure to include the fixed-sized {\tt Log\_Record}
-object, as well as the variable-sized {\tt msg\_data} portion in your
-computations.
-
-The number of iterations and the size of the messages sent by the
-client should be parameterizable on the command-line. Make sure that
-your timing tests are run between processes on two different machines
-(rather than processes on the same machine). If possible, try to run
-the client and server processes on two machines on the same subnet.
-
-When you are finished with your timing test, you should explain the
-timing results and indicate trends that you observed.
-
-\section{Learning and Using CORBA}
-
-To help you learn how CORBA works, I will be making copies of the
-Orbix programmer's manual available for a small reproduction fee.
-This manual explains how to program in CORBA. I will announce in
-class where this will be available.
-
-We will be using IONA's Orbix CORBA Object Request Broker (ORB)
-implementation. The libraries, executables, CORBA IDL compiler, and
-example demo applications are located in {\tt
-/project/adaptive/Orbix}. Please note that this is an automounted
-directory, so you will need to {\tt cd} directly to it in order to see
-the contents. To configure Orbix for your environment, copy the {\tt
-/project/adaptive/Orbix/Orbix.cfg} file to your account. You'll need
-to set the environment variable {\tt IT\_CONFIG\_PATH} to the complete
-path where this file is located.
-
-\section{Concluding Remarks}
-In office hours and in class, we will discuss how to use C++ and CORBA
-in order to develop your solutions. Note that this assignment will
-teach you many skills required to become adept at network programming.
-However, it also will require a great deal of thought and planning.
-Please make sure you start early, come to office hours, and ask lots
-of questions.
-
-\end{document}
diff --git a/apps/Orbix-Examples/Logger/client.cpp b/apps/Orbix-Examples/Logger/client.cpp
deleted file mode 100644
index 6a0104bd07e..00000000000
--- a/apps/Orbix-Examples/Logger/client.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-// A client for the distributed logger example. This program reads
-// $Id$
-
-// from either stdin or from a redirected file and sends all the
-// contents to the logging server. It also computes how long it takes
-// to send this stuff.
-
-
-#include "Logger.h"
-
-// maximum message size
-static size_t max_message_size = BUFSIZ;
-
-// Default behavior is to use the locator service.
-static char *hostname = 0;
-
-// Should we prompt the user?
-static int user_prompt;
-
-static void
-parse_args (int argc, char *argv[])
-{
- extern char *optarg;
- extern int optind;
- int c;
-
- ACE_LOG_MSG->open (argv[0]);
-
- // If a file has been redirected, don't activate user prompts
- if (ACE_OS::isatty (0))
- user_prompt = 1;
- else
- user_prompt = 0;
-
- while ((c = ACE_OS::getopt (argc, argv, "m:h:")) != -1)
- switch (c)
- {
- case 'm':
- max_message_size = ACE_OS::atoi (optarg) * BUFSIZ;
- break;
- case 'h':
- hostname = optarg;
- break;
- default:
- ACE_ERROR ((LM_ERROR, "%n: -h host -m max_message_size (in kbytes)\n%a", 1));
- /* NOTREACHED */
- }
-}
-
-// Enable/disable verbose logging.
-
-static int
-toggle_verbose (Logger &logger)
-{
- int verbose_value;
-
- verbose_value = logger.verbose ();
- logger.verbose (!verbose_value);
- return 0;
-}
-
-// Transmit messages to the server.
-
-int
-transmit (Logger &logger, char buf[], ACE_HANDLE handle = 0)
-{
- if (user_prompt)
- cout << "\nEnter message ('Q':quit,'V':toggle verbose):\n" << flush;
-
- ssize_t nbytes = ACE_OS::read (handle, buf, max_message_size);
-
- if (nbytes <= 0)
- return nbytes; // End of file or error.
- buf[nbytes] = '\0';
-
- if (user_prompt)
- {
- if (buf[0] == 'Q' || buf[0] == 'q')
- return 0;
- // toggle verbose?
- else if (buf[0] == 'V' || buf[0] == 'v')
- toggle_verbose (logger);
- }
-
- // send the message to the logger
- if (logger.log (logger::LM_DEBUG, buf, nbytes) == -1)
- return -1;
- else
- return nbytes;
-}
-
-// Print the results of the tests.
-
-void
-report_results (profile_logger::Elapsed_Time &et, size_t total_bytes)
-{
- ACE_DEBUG ((LM_DEBUG,
- "real time = %8.2f\n"
- "user time = %8.2f\n"
- "sys time = %8.2f\n"
- "mbits sec = %8.2f\n",
- et.real_time, et.user_time, et.system_time,
- (total_bytes / et.real_time) * 8.0 / 1024.0 / 1024.0));
-}
-
-int
-main (int argc, char **argv)
-{
- parse_args (argc,argv);
-
- // Pointer to the logger object that will be used.
- Logger logger (hostname, max_message_size);
- char *buf = new char [max_message_size];
- size_t total_bytes = 0;
- size_t nbytes = 0;
-
- logger.start_timer ();
-
- // Transmit logging records until user quits.
-
- for (int done = 0; done == 0;)
- switch (nbytes = transmit (logger, buf))
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "transmit"), -1);
- /* NOTREACHED */
- case 0:
- done = 1;
- break;
- default:
- total_bytes += nbytes;
- break;
- }
-
- profile_logger::Elapsed_Time et;
-
- if (logger.stop_timer (et) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "stop timer"), -1);
-
- report_results (et, total_bytes);
- return 0;
-}
diff --git a/apps/Orbix-Examples/Logger/logger.hh b/apps/Orbix-Examples/Logger/logger.hh
deleted file mode 100644
index 0d0eeeca2f0..00000000000
--- a/apps/Orbix-Examples/Logger/logger.hh
+++ /dev/null
@@ -1,434 +0,0 @@
-
-#ifndef logger_hh
-#define logger_hh
-
-#include <CORBA.h>
-
-#include <string.h>
-
-
-#ifndef _IDL_SEQUENCE_char_defined
-#define _IDL_SEQUENCE_char_defined
-
-struct IONANC__IDL_SEQUENCE_char;
-struct _IDL_SEQUENCE_char {
- unsigned long _maximum;
- unsigned long _length;
- char *_buffer;
-
- operator IONANC__IDL_SEQUENCE_char();
- operator const IONANC__IDL_SEQUENCE_char() const;
- _IDL_SEQUENCE_char& operator= (const IONANC__IDL_SEQUENCE_char&);
-
- _IDL_SEQUENCE_char& operator= (const _IDL_SEQUENCE_char&);
- _IDL_SEQUENCE_char (const _IDL_SEQUENCE_char&);
-
- _IDL_SEQUENCE_char (unsigned long IT_size = 0);
-
- ~_IDL_SEQUENCE_char () { if (_buffer) delete [] _buffer; }
-
- char& operator [] (unsigned long IT_i) const {return _buffer[IT_i]; }
-
- void encodeOp (CORBA::Request &IT_r) const;
- void decodeOp (CORBA::Request &IT_r);
- void decodeInOutOp (CORBA::Request &IT_r);
-};
-
-struct IONANC__IDL_SEQUENCE_char {
- unsigned long _maximum;
- unsigned long _length;
- char *_buffer;
-
- char& operator [] (unsigned long IT_i) const;
-
- operator _IDL_SEQUENCE_char ();
-
- operator const _IDL_SEQUENCE_char () const;
-
-};
-
-
-
-#endif
-
-
-#ifndef _logger_defined
-#define _logger_defined
-class logger_dispatch : public virtual CORBA::PPTR {
-public:
-
- logger_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m,
- CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {}
-
-
- logger_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- logger_dispatch () {}
-
- logger_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m,
- char *IT_i, CORBA::Object* IT_ob, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {}
-
-
- virtual unsigned char dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void* IT_pp=NULL);
-
-
-};
-
-class logger;
-
-
-#ifndef loggerForwH
-#define loggerForwH
-CORBA::ObjectRef logger_getBase (void *);
-void logger_release (void *, CORBA::Environment &IT_env=CORBA::default_environment);
-logger* logger_duplicate (void *, CORBA::Environment &IT_env=CORBA::default_environment);
-#endif
-#define logger_IMPL "logger"
-
-
-class logger;
-#define logger_IR "logger"
-#define logger_IMPL "logger"
-
-typedef logger* loggerRef;
-typedef logger* logger_ptr;
-class logger: public virtual CORBA::Object {
-public:
- logger (char *IT_OR);
- logger () : CORBA::Object (1) {}
- logger* _duplicate(
- CORBA::Environment &IT_env=CORBA::default_environment) {
- CORBA::Object::_duplicate (IT_env); return this; }
- static logger* _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env=CORBA::default_environment);
- static logger* _bind (CORBA::Environment &IT_env);
- static logger* _bind (const char* IT_markerServer=NULL, const char* host=NULL,
- CORBA::Environment &IT_env=CORBA::default_environment);
- static logger* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::default_environment);
-enum Log_Priority {LM_MESSAGE,LM_DEBUG,LM_WARNING,LM_ERROR,LM_EMERG};
-
-#ifndef logger_Log_Record_defined
-#define logger_Log_Record_defined
-
-struct IONANC_Log_Record;
-struct Log_Record {
- logger::Log_Priority type;
- long time;
- long app_id;
- long host_addr;
- _IDL_SEQUENCE_char msg_data;
-
- void encodeOp (CORBA::Request &IT_r) const;
- void decodeOp (CORBA::Request &IT_r);
- void decodeInOutOp (CORBA::Request &IT_r);
- Log_Record(const Log_Record &);
- Log_Record();
- operator logger::IONANC_Log_Record();
- operator const logger::IONANC_Log_Record() const;
- Log_Record& operator= (const IONANC_Log_Record&);
- ~Log_Record();
- Log_Record& operator= (const Log_Record&);
-};
-
-struct IONANC_Log_Record {
- logger::Log_Priority type;
- long time;
- long app_id;
- long host_addr;
- IONANC__IDL_SEQUENCE_char msg_data;
- operator logger::Log_Record ();
- operator const logger::Log_Record () const;
- };
-
-
-#endif
-
- virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env=CORBA::default_environment);
- virtual void verbose (char verbose, CORBA::Environment &IT_env=CORBA::default_environment);
- virtual char verbose (CORBA::Environment &IT_env=CORBA::default_environment);
-};
-
-
-#define TIE_logger(X) logger##X
-
-#define DEF_TIE_logger(X) \
- class logger##X : public virtual logger { \
- X* m_obj; \
- public: \
- \
- logger##X (X *objp, const char* m="", CORBA::LoaderClass *l=nil)\
- : logger(), CORBA::Object (), m_obj(objp) { \
- m_pptr = new logger_dispatch \
- (( logger*)this,(CORBA::Object*)this,m,l,logger_IR,m_obj); \
- } \
- logger##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=nil)\
- : logger(), CORBA::Object () { \
- m_pptr = new logger_dispatch \
- (( logger*)this,(CORBA::Object*)this,IT_m,logger_IR,IT_p,IT_q); \
- m_obj = (X*)(m_pptr->getImplObj ()); \
- } \
- \
- virtual ~logger##X () { \
- if (_okToDeleteImpl ()) delete m_obj; } \
- \
- virtual void* _deref () { \
- return m_obj; } \
- \
- virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env) {\
-m_obj->log ( log_rec,IT_env);\
-}\
- \
-virtual void verbose (char verbose, CORBA::Environment &IT_env) {\
- m_obj->verbose(verbose,IT_env); }\
- \
-virtual char verbose (CORBA::Environment &IT_env) {\
-return m_obj->verbose(IT_env); }\
- \
- };
-
-
-#define QUALS_logger \
- virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env) {\
-m_obj->log ( log_rec,IT_env);\
-}\
- \
-virtual void verbose (char verbose, CORBA::Environment &IT_env) {\
- m_obj->verbose(verbose,IT_env); }\
- \
-virtual char verbose (CORBA::Environment &IT_env) {\
-return m_obj->verbose(IT_env); }\
-
-
-
-
-class loggerProxyFactoryClass : public virtual CORBA::ObjectFactoryClass {
-public:
- loggerProxyFactoryClass (unsigned char IT_p=0)
- : CORBA::ProxyFactory (logger_IR, IT_p) {}
-
- virtual void* New (char *IT_OR, CORBA::Environment&);
-
- virtual void* New2 ();
-
- virtual void* IT_castUp (void *IT_p, char* IT_s);
-
- virtual CORBA::PPTR* pptr (void *IT_p);
-
- virtual void baseInterfaces (_IDL_SEQUENCE_string&);
-
-
-};
-
-extern loggerProxyFactoryClass loggerProxyFactory;
-
-
-
-class loggerBOAImpl : public virtual logger {
-public:
- loggerBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) {
- if (CORBA::PPTR::isOK (m_pptr, logger_IR))
- m_pptr = new logger_dispatch ( (logger*)this,
- (CORBA::Object*)this, m, l, logger_IR, this);
-}
-
- virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env=CORBA::default_environment) =0;
- virtual void verbose (char verbose, CORBA::Environment &IT_env=CORBA::default_environment)=0;
- virtual char verbose (CORBA::Environment &IT_env=CORBA::default_environment)=0;
-};
-
-
-#endif
-
-
-#ifndef _profile_logger_defined
-#define _profile_logger_defined
-class profile_logger_dispatch : public virtual logger_dispatch {
-public:
-
- profile_logger_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m,
- CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {}
-
-
- profile_logger_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o)
- : CORBA::PPTR (IT_OR,IT_p,IT_o) {}
-
-
- profile_logger_dispatch () {}
-
- profile_logger_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m,
- char *IT_i, CORBA::Object* IT_ob, void* IT_im)
- : CORBA::PPTR (IT_p,IT_o,IT_m,IT_i,IT_ob,IT_im) {}
-
-
- virtual unsigned char dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void* IT_pp=NULL);
-
-
-};
-
-class profile_logger;
-
-
-#ifndef profile_loggerForwH
-#define profile_loggerForwH
-CORBA::ObjectRef profile_logger_getBase (void *);
-void profile_logger_release (void *, CORBA::Environment &IT_env=CORBA::default_environment);
-profile_logger* profile_logger_duplicate (void *, CORBA::Environment &IT_env=CORBA::default_environment);
-#endif
-#define profile_logger_IMPL "profile_logger"
-
-
-class profile_logger;
-#define profile_logger_IR "profile_logger"
-#define profile_logger_IMPL "profile_logger"
-
-typedef profile_logger* profile_loggerRef;
-typedef profile_logger* profile_logger_ptr;
-class profile_logger: public virtual logger {
-public:
- profile_logger (char *IT_OR);
- profile_logger () : CORBA::Object (1) {}
- profile_logger* _duplicate(
- CORBA::Environment &IT_env=CORBA::default_environment) {
- CORBA::Object::_duplicate (IT_env); return this; }
- static profile_logger* _bind (const char* IT_markerServer, const char* host,
- const CORBA::Context &IT_c,
- CORBA::Environment &IT_env=CORBA::default_environment);
- static profile_logger* _bind (CORBA::Environment &IT_env);
- static profile_logger* _bind (const char* IT_markerServer=NULL, const char* host=NULL,
- CORBA::Environment &IT_env=CORBA::default_environment);
- static profile_logger* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::default_environment);
-
-#ifndef profile_logger_Elapsed_Time_defined
-#define profile_logger_Elapsed_Time_defined
-
-struct Elapsed_Time {
- double real_time;
- double user_time;
- double system_time;
-
- void encodeOp (CORBA::Request &IT_r) const;
- void decodeOp (CORBA::Request &IT_r);
- void decodeInOutOp (CORBA::Request &IT_r);
-};
-
-
-#endif
-
- virtual void start_timer (CORBA::Environment &IT_env=CORBA::default_environment);
- virtual void stop_timer (profile_logger::Elapsed_Time& et, CORBA::Environment &IT_env=CORBA::default_environment);
-};
-
-
-#define TIE_profile_logger(X) profile_logger##X
-
-#define DEF_TIE_profile_logger(X) \
- class profile_logger##X : public virtual profile_logger { \
- X* m_obj; \
- public: \
- \
- profile_logger##X (X *objp, const char* m="", CORBA::LoaderClass *l=nil)\
- : profile_logger(), CORBA::Object (), m_obj(objp) { \
- m_pptr = new profile_logger_dispatch \
- (( profile_logger*)this,(CORBA::Object*)this,m,l,profile_logger_IR,m_obj); \
- } \
- profile_logger##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=nil)\
- : profile_logger(), CORBA::Object () { \
- m_pptr = new profile_logger_dispatch \
- (( profile_logger*)this,(CORBA::Object*)this,IT_m,profile_logger_IR,IT_p,IT_q); \
- m_obj = (X*)(m_pptr->getImplObj ()); \
- } \
- \
- virtual ~profile_logger##X () { \
- if (_okToDeleteImpl ()) delete m_obj; } \
- \
- virtual void* _deref () { \
- return m_obj; } \
- \
- virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env) {\
-m_obj->log ( log_rec,IT_env);\
-}\
- \
-virtual void verbose (char verbose, CORBA::Environment &IT_env) {\
- m_obj->verbose(verbose,IT_env); }\
- \
-virtual char verbose (CORBA::Environment &IT_env) {\
-return m_obj->verbose(IT_env); }\
- virtual void start_timer (CORBA::Environment &IT_env) {\
-m_obj->start_timer (IT_env);\
-}\
- \
- virtual void stop_timer (profile_logger::Elapsed_Time& et, CORBA::Environment &IT_env) {\
-m_obj->stop_timer ( et,IT_env);\
-}\
- \
- };
-
-
-#define QUALS_profile_logger \
- virtual void log (const logger::Log_Record& log_rec, CORBA::Environment &IT_env) {\
-m_obj->log ( log_rec,IT_env);\
-}\
- \
-virtual void verbose (char verbose, CORBA::Environment &IT_env) {\
- m_obj->verbose(verbose,IT_env); }\
- \
-virtual char verbose (CORBA::Environment &IT_env) {\
-return m_obj->verbose(IT_env); }\
- virtual void start_timer (CORBA::Environment &IT_env) {\
-m_obj->start_timer (IT_env);\
-}\
- \
- virtual void stop_timer (profile_logger::Elapsed_Time& et, CORBA::Environment &IT_env) {\
-m_obj->stop_timer ( et,IT_env);\
-}\
-
-
-
-
-class profile_loggerProxyFactoryClass : public virtual loggerProxyFactoryClass {
-public:
- profile_loggerProxyFactoryClass (unsigned char IT_p=0)
- : CORBA::ProxyFactory (profile_logger_IR, IT_p) {}
-
- virtual void* New (char *IT_OR, CORBA::Environment&);
-
- virtual void* New2 ();
-
- virtual void* IT_castUp (void *IT_p, char* IT_s);
-
- virtual CORBA::PPTR* pptr (void *IT_p);
-
- virtual void baseInterfaces (_IDL_SEQUENCE_string&);
-
-
-};
-
-extern profile_loggerProxyFactoryClass profile_loggerProxyFactory;
-
-
-
-class profile_loggerBOAImpl : public virtual profile_logger {
-public:
- profile_loggerBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) {
- if (CORBA::PPTR::isOK (m_pptr, profile_logger_IR))
- m_pptr = new profile_logger_dispatch ( (profile_logger*)this,
- (CORBA::Object*)this, m, l, profile_logger_IR, this);
-}
-
- virtual void start_timer (CORBA::Environment &IT_env=CORBA::default_environment) =0;
- virtual void stop_timer (profile_logger::Elapsed_Time& et, CORBA::Environment &IT_env=CORBA::default_environment) =0;
-};
-
-
-#endif
-
-
-#endif
diff --git a/apps/Orbix-Examples/Logger/logger.idl b/apps/Orbix-Examples/Logger/logger.idl
deleted file mode 100644
index 1d8ee9babc7..00000000000
--- a/apps/Orbix-Examples/Logger/logger.idl
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// @(#)logger.idl 1.1 10/18/96
-
-// logger.idl
-
-interface logger
-// = TITLE
-// This is the CORBA interface for the logger class.
-{
- // = Types of logging messages.
- enum Log_Priority
- {
- LM_MESSAGE,
- LM_DEBUG,
- LM_WARNING,
- LM_ERROR,
- LM_EMERG
- };
-
- // = Format of the logging record.
- struct Log_Record
- {
- Log_Priority type; // Type of logging message.
- long time; // Time stamp at sender.
- long app_id; // Process ID of sender.
- long host_addr; // IP address of the sender.
- sequence<char> msg_data; // Sender-specific logging message.
- };
-
- oneway void log (in Log_Record log_rec);
- // Transmit a Log_Record to the logging server.
-
- attribute char verbose;
- // Toggle verbose formatting
-};
-
-interface profile_logger
- : logger // Profile_Logger IS-A Logger
-// = TITLE
-// IDL Profile Logger definition that is used
-// to compute statistics about the logging.
-{
- // = Stores the amount of time that has elapsed.
- struct Elapsed_Time
- {
- double real_time;
- double user_time;
- double system_time;
- };
-
- void start_timer ();
- // Activate the timer.
-
- void stop_timer (out Elapsed_Time et);
- // Deactivate the timer and return the elapsed time.
-};
diff --git a/apps/Orbix-Examples/Logger/loggerS.cpp b/apps/Orbix-Examples/Logger/loggerS.cpp
deleted file mode 100644
index 51d9a70fd03..00000000000
--- a/apps/Orbix-Examples/Logger/loggerS.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// $Id$
-
-#include "logger.hh"
-
-
-#define logger_dispatch_impl
-
-unsigned char logger_dispatch::dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void *IT_pp) {
- if (!IT_pp)
- IT_pp = m_obj;
- const char *IT_s = IT_r.getOperation ();
- if (!strcmp(IT_s,"log")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~log~+log_rec{R~logger::Log_Record~type{E~logger::Log_Priority~LM_MESSAGE,LM_DEBUG,LM_WARNING,LM_ERROR,LM_EMERG},time{l},app_id{l},host_addr{l},msg_data{S{c},0}},>{v},O{}\
-"))
- return 1;
- logger::Log_Record log_rec;
- log_rec.decodeOp (IT_r);
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((logger*)IT_pp)->log ( log_rec, IT_env);
-
- IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env);
- return 1;
- }
-
- else if (!strcmp (IT_s,"_get_verbose")) {
- char verbose;
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~_get_verbose~>{c},N{}\
-"))
- return 1;
- if (IT_f)
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- verbose = ((logger*)IT_pp)->verbose(IT_env);
-
- if (!IT_r.isException (IT_env)) {
- if (!IT_r.convertToReply ("\
-c\
-", IT_env)) return 1;
- IT_r << verbose;
- }
- else IT_r.makeSystemException (IT_env);
-
- return 1;
- }
- else if (!strcmp (IT_s,"_set_verbose")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (IT_r.tcAssert ("\
-Ro~_set_verbose~+{c},>{v},N{}\
-")) {
- char verbose;
- IT_r >> verbose;
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((logger*)IT_pp)->verbose(verbose, IT_env);
- }
- IT_r.replyNoResults (IT_env);
- return 1;
- }
-
- else if (IT_isTarget)
- IT_r.makeRuntimeException2 ();
-
- return 0;
-}
-
-#define profile_logger_dispatch_impl
-
-unsigned char profile_logger_dispatch::dispatch (CORBA::Request &IT_r,
- unsigned char IT_isTarget, void *IT_pp) {
- if (!IT_pp)
- IT_pp = m_obj;
- const char *IT_s = IT_r.getOperation ();
- if (!strcmp(IT_s,"start_timer")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~start_timer~>{v},N{}\
-"))
- return 1;
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((profile_logger*)IT_pp)->start_timer (IT_env);
-
- IT_r.replyNoResults (IT_env);
- return 1;
- }
-
- else if (!strcmp(IT_s,"stop_timer")) {
- CORBA::Environment IT_env (IT_r);
- CORBA::Filter* IT_f = CORBA::Orbix.getFilter ();
- if (!IT_r.tcAssert ("\
-Ro~stop_timer~-et{R~profile_logger::Elapsed_Time~real_time{d},user_time{d},system_time{d}},>{v},N{}\
-"))
- return 1;
- profile_logger::Elapsed_Time et;
-
- if (IT_f && !IT_r.isException (IT_env))
- IT_f->inRequestPostM (IT_r, IT_env);
- if (!IT_r.isException (IT_env))
- ((profile_logger*)IT_pp)->stop_timer ( et, IT_env);
-
-
- if (!IT_r.isException (IT_env)) {
- if (!IT_r.convertToReply ("\
-v\
-", IT_env)) return 1;
- et.encodeOp (IT_r);
- }
-
- else IT_r.makeSystemException (IT_env);
- return 1;
- }
-
- else if (logger_dispatch::dispatch (IT_r, 0,
- (logger*)((profile_logger*)IT_pp))) {
- return 1;
- }
-
- else if (IT_isTarget)
- IT_r.makeRuntimeException2 ();
-
- return 0;
-}
-
-#include "loggerC.cpp"
-
diff --git a/apps/Orbix-Examples/Logger/logger_i.cpp b/apps/Orbix-Examples/Logger/logger_i.cpp
deleted file mode 100644
index 1bee6b3f7e1..00000000000
--- a/apps/Orbix-Examples/Logger/logger_i.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-// Implementation of the logger object.
-// $Id$
-
-
-#include "ace/OS.h"
-#include <iostream.h>
-#include "logger_i.h"
-
-// Select non-verbose logging by default.
-
-logger_i::logger_i (int verbose)
- : verbose_value_ (verbose)
-{
- if (ACE_OS::getenv ("NO_MESSAGES") == 0)
- this->verbose_message_ = 1;
- else
- this->verbose_message_ = 0;
-}
-
-// Implement the log method.
-
-void
-logger_i::log (const logger::Log_Record &log_rec, CORBA::Environment &IT_env)
-{
- if (this->verbose_value_) // If verbose mode is on
- {
- char *tm;
-
- // Convert time
- if ((tm = ACE_OS::ctime (&log_rec.time)) == 0)
- cerr << "ctime failed" << endl;
- else
- {
- hostent *hp;
-
- /* 01234567890123456789012345 */
- /* Wed Oct 18 14:25:36 1989n0 */
- tm[24] = '@';
- cout << tm;
-
- // Get host name of client
-
- if ((hp = gethostbyaddr((char *) &log_rec.host_addr,
- sizeof log_rec.host_addr, AF_INET)) == NULL)
- {
- cerr << "server: error in calling gethostbyaddr" << endl;
- cerr << "h_errno = " << h_errno << endl;
- return;
- }
- else // Output client hostname.
- cout << hp->h_name << "@";
-
- // Output PID of client
- cout << log_rec.app_id << "@";
-
- // Output priority
-
- switch (log_rec.type)
- {
- case logger::LM_DEBUG:
- cout << "LM_DEBUG";
- break;
- case logger::LM_WARNING:
- cout << "LM_WARNING";
- break;
- case logger::LM_ERROR:
- cout << "LM_ERROR";
- break;
- case logger::LM_EMERG:
- cout << "LM_EMERG";
- break;
- }
- }
- }
- if (this->verbose_message_)
- {
- cout << "::";
- // Output message
- cout.write (log_rec.msg_data._buffer, log_rec.msg_data._length) << flush;
- }
-}
-
-// Enable/disable verbosity.
-
-void
-logger_i::verbose (char verbose, CORBA::Environment &IT_env)
-{
- this->verbose_value_ = verbose;
-}
-
-// Report current verbosity level.
-
-char
-logger_i::verbose (CORBA::Environment &IT_env)
-{
- return this->verbose_value_;
-}
-
-// Profile_Logger_i
-
-void
-profile_logger_i::start_timer (CORBA::Environment &IT_env)
-{
- this->pt_.start ();
-}
-
-void
-profile_logger_i::stop_timer (profile_logger::Elapsed_Time& et,
- CORBA::Environment &IT_env)
-{
- this->pt_.stop ();
-
- ACE_Profile_Timer::ACE_Elapsed_Time e;
-
- this->pt_.elapsed_time (e);
-
- et.real_time = e.real_time;
- et.user_time = e.user_time;
- et.system_time = e.system_time;
-}
diff --git a/apps/Orbix-Examples/Logger/logger_i.h b/apps/Orbix-Examples/Logger/logger_i.h
deleted file mode 100644
index 40d7b77c6bf..00000000000
--- a/apps/Orbix-Examples/Logger/logger_i.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-#include "ace/Profile_Timer.h"
-#define EXCEPTIONS
-#include "logger.hh"
-
-class logger_i
-#if defined (USE_BOA_IMPL)
- : virtual public loggerBOAImpl
-#endif /* USE_BOA_IMPL */
- // = TITLE
- // Implementation of the logger interface.
- //
- // = DESCRIPTION
- // Uses either the BOAImpl or the DEF_TIE approach,
- // depending on the #ifdef
-{
-public:
- logger_i (int verbose = 0);
- // Select non-verbose logging by default.
-
- virtual void log (const logger::Log_Record &log_rec, CORBA::Environment &IT_env);
- // Implement the log method.
-
- virtual void verbose (char verbose, CORBA::Environment &IT_env);
- // Enable/disable verbosity.
-
- virtual char verbose (CORBA::Environment &IT_env);
- // Report current verbosity level.
-
-private:
- unsigned char verbose_value_;
- // Indicate if we are using verbose logging or not.
-
- unsigned char verbose_message_;
- // Indicate if we outputting the messages (turn off if you
- // want to conduct timing tests that just measure throughput).
-};
-
-class profile_logger_i :
-#if defined (USE_BOA_IMPL)
- public virtual profile_loggerBOAImpl,
- public virtual Logger_i
-#else /* USE_TIE */
- public logger_i
-#endif /* USE_BOA_IMPL */
- // = TITLE
- // Implementation of the profiler logger interface.
- //
- // = DESCRIPTION
- // Uses the BOAImpl approach.
-{
-public:
- virtual void start_timer (CORBA::Environment &env);
- // Activate the timer.
-
- virtual void stop_timer (profile_logger::Elapsed_Time &et,
- CORBA::Environment &env);
- // Deactivate the timer and return the elapsed time.
-
-private:
- ACE_Profile_Timer pt_;
- // Object that keeps track of the user and system execution time.
-};
-
-#if !defined (USE_BOA_IMPL)
-// Indicate that the C++ classes logger_i and profile_logger_i implement
-// the IDL interface logger and profile_logger, respectively:
-
-DEF_TIE_logger (logger_i)
-DEF_TIE_profile_logger (profile_logger_i)
-
-#endif /* USE_BOA_IMPL */
diff --git a/apps/Orbix-Examples/Logger/server.cpp b/apps/Orbix-Examples/Logger/server.cpp
deleted file mode 100644
index 0e9339a7028..00000000000
--- a/apps/Orbix-Examples/Logger/server.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-// server.C
-// $Id$
-
-
-// The server for the logger example.
-// This uses the TRY,CATCHANY,ENDTRY macros for error testing.
-
-// The executable file generated from this code should be registered
-// (under the name 'logger') using the 'putit' command.
-
-#include <iostream.h>
-#include "logger_i.h"
-
-int
-main (int, char *[])
-{
- // Tell the server not to hang up while clients are connected.
- CORBA::Orbix.setNoHangup (1);
-
- // create a logger object - using the implementation class logger_i
-#if defined (USE_BOA_IMPL)
- profile_logger_i profile_logger;
-#else
- TIE_profile_logger (profile_logger_i) profile_logger (new profile_logger_i);
-#endif /* USE_BOA_IMPL */
-
- TRY {
- // tell Orbix that we have completed the server's initialisation:
- CORBA::Orbix.impl_is_ready (profile_logger_IMPL, IT_X);
- } CATCHANY {
- // an error occured calling impl_is_ready () - output the error.
- cout << IT_X << endl;
- } ENDTRY;
-
- // impl_is_ready() returns only when Orbix times-out an idle server
- // (or an error occurs).
- cerr << "server exiting" << endl;
-
- return 0;
-}
diff --git a/apps/Orbix-Examples/Makefile b/apps/Orbix-Examples/Makefile
deleted file mode 100644
index 8108f98713b..00000000000
--- a/apps/Orbix-Examples/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Orbix applications
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = Event_Comm \
- Logger
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
-
diff --git a/apps/README b/apps/README
deleted file mode 100644
index 9a21781fced..00000000000
--- a/apps/README
+++ /dev/null
@@ -1,18 +0,0 @@
-The subdirectories in this directory provide a number of complete
-applications that utilize the ACE features.
-
- . Gateway -- Implements a connection-oriented application-level
- gateway that uses source-based and destination-based routing
- of messages between peers connected via TCP/IP networks.
-
- . JAWS -- This is a high-performance HTTP Web server written
- with ACE. It illustrates a number of sophisticated ACE
- concurrency and event demultiplexing strategies.
-
- . Orbix-Examples -- Implements several applications that
- integrate ACE and Orbix (which is IONA's implementation of
- CORBA). By default, these aren't compiled since most
- platforms don't have Orbix. These examples are completely
- unsupported and may not work...
-
- . gperf -- The GNU perfect hash function generator.
diff --git a/apps/gperf/COPYING b/apps/gperf/COPYING
deleted file mode 100644
index 9a170375811..00000000000
--- a/apps/gperf/COPYING
+++ /dev/null
@@ -1,249 +0,0 @@
-
- GNU GENERAL PUBLIC LICENSE
- Version 1, February 1989
-
- Copyright (C) 1989 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The license agreements of most software companies try to keep users
-at the mercy of those companies. By contrast, our General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. The
-General Public License applies to the Free Software Foundation's
-software and to any other program whose authors commit to using it.
-You can use it for your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Specifically, the General Public License is designed to make
-sure that you have the freedom to give away or sell copies of free
-software, that you receive source code or can get it if you want it,
-that you can change the software or use pieces of it in new free
-programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of a such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must tell them their rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any program or other work which
-contains a notice placed by the copyright holder saying it may be
-distributed under the terms of this General Public License. The
-"Program", below, refers to any such program or work, and a "work based
-on the Program" means either the Program or any work containing the
-Program or a portion of it, either verbatim or with modifications. Each
-licensee is addressed as "you".
-
- 1. You may copy and distribute verbatim copies of the Program's source
-code as you receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this
-General Public License and to the absence of any warranty; and give any
-other recipients of the Program a copy of this General Public License
-along with the Program. You may charge a fee for the physical act of
-transferring a copy.
-
- 2. You may modify your copy or copies of the Program or any portion of
-it, and copy and distribute such modifications under the terms of Paragraph
-1 above, provided that you also do the following:
-
- a) cause the modified files to carry prominent notices stating that
- you changed the files and the date of any change; and
-
- b) cause the whole of any work that you distribute or publish, that
- in whole or in part contains the Program or any part thereof, either
- with or without modifications, to be licensed at no charge to all
- third parties under the terms of this General Public License (except
- that you may choose to grant warranty protection to some or all
- third parties, at your option).
-
- c) If the modified program normally reads commands interactively when
- run, you must cause it, when started running for such interactive use
- in the simplest and most usual way, to print or display an
- announcement including an appropriate copyright notice and a notice
- that there is no warranty (or else, saying that you provide a
- warranty) and that users may redistribute the program under these
- conditions, and telling the user how to view a copy of this General
- Public License.
-
- d) You may charge a fee for the physical act of transferring a
- copy, and you may at your option offer warranty protection in
- exchange for a fee.
-
-Mere aggregation of another independent work with the Program (or its
-derivative) on a volume of a storage or distribution medium does not bring
-the other work under the scope of these terms.
-
- 3. You may copy and distribute the Program (or a portion or derivative of
-it, under Paragraph 2) in object code or executable form under the terms of
-Paragraphs 1 and 2 above provided that you also do one of the following:
-
- a) accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of
- Paragraphs 1 and 2 above; or,
-
- b) accompany it with a written offer, valid for at least three
- years, to give any third party free (except for a nominal charge
- for the cost of distribution) a complete machine-readable copy of the
- corresponding source code, to be distributed under the terms of
- Paragraphs 1 and 2 above; or,
-
- c) accompany it with the information you received as to where the
- corresponding source code may be obtained. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form alone.)
-
-Source code for a work means the preferred form of the work for making
-modifications to it. For an executable file, complete source code means
-all the source code for all modules it contains; but, as a special
-exception, it need not include source code for modules which are standard
-libraries that accompany the operating system on which the executable
-file runs, or for standard header files or definitions files that
-accompany that operating system.
-
- 4. You may not copy, modify, sublicense, distribute or transfer the
-Program except as expressly provided under this General Public License.
-Any attempt otherwise to copy, modify, sublicense, distribute or transfer
-the Program is void, and will automatically terminate your rights to use
-the Program under this License. However, parties who have received
-copies, or rights to use copies, from you under this General Public
-License will not have their licenses terminated so long as such parties
-remain in full compliance.
-
- 5. By copying, distributing or modifying the Program (or any work based
-on the Program) you indicate your acceptance of this license to do so,
-and all its terms and conditions.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the original
-licensor to copy, distribute or modify the Program subject to these
-terms and conditions. You may not impose any further restrictions on the
-recipients' exercise of the rights granted herein.
-
- 7. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of the license which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-the license, you may choose any version ever published by the Free Software
-Foundation.
-
- 8. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to humanity, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these
-terms.
-
- To do so, attach the following notices to the program. It is safest to
-attach them to the start of each source file to most effectively convey
-the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 1, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19xx name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the
-appropriate parts of the General Public License. Of course, the
-commands you use may be called something other than `show w' and `show
-c'; they could even be mouse-clicks or menu items--whatever suits your
-program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- program `Gnomovision' (a program to direct compilers to make passes
- at assemblers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/apps/gperf/ChangeLog b/apps/gperf/ChangeLog
deleted file mode 100644
index 8ef222178ca..00000000000
--- a/apps/gperf/ChangeLog
+++ /dev/null
@@ -1,1339 +0,0 @@
-Thu May 14 16:37:39 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * src: ACE'ifed most of the gperf source code, yow!
-
-Sun Apr 14 14:31:10 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * src: Changed things so that there's no longer any use of the
- Read_Line and Std_Err code. All of this has been pushed into
- the ACE components, which is where it belongs...
-
- * src: Changed things so that there's no longer any use of the
- pointless inheritance in the code. This was a result of my not
- understanding inheritance back in 1989... ;-)
-
- * Began to integrate GNU gperf into the ACE release. Started off
- by bringing the standard GNU version up to date wrt to the
- changes I made back in 1991!
-
-Tue Oct 10 16:37:28 1995 Mike Stump <mrs@cygnus.com>
-
- * src/new.cc: Since malloc/delete are not paired, we cannot call
- free.
-
-Wed Jan 4 12:40:14 1995 Per Bothner <bothner@kalessin.cygnus.com>
-
- * src/Makefile.in ($(TARGETPROG)): Link with $(LDFLAGS).
- Patch from John Interrante <interran@uluru.stanford.edu>.
-
-Sat Nov 5 19:12:48 1994 Jason Merrill (jason@phydeaux.cygnus.com)
-
- * src/Makefile.in (LIBS): Remove.
-
-Tue Oct 18 17:51:14 1994 Per Bothner <bothner@kalessin.cygnus.com>
-
- * src/std-err.cc: Use stderror, instead of the non-standard
- sys_nerr and sys_errlist.
-
-Sat Sep 17 22:02:13 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * src/key-list.cc (output_hash_function):
- Patch from William Bader <wbader@CSEE.Lehigh.Edu>.
-
-Fri Jul 15 09:38:11 1994 Per Bothner (bothner@cygnus.com)
-
- * src/std-err.cc: #include <errno.h>, and only declare
- extern int errno if errno is not a macro.
-
-Mon May 30 17:29:34 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (src_all, install): Make sure to add '/' after
- `pwd` in $rootme, as expected by FLAGS_TO_PASS.
-
-Wed May 11 00:47:22 1994 Jason Merrill (jason@deneb.cygnus.com)
-
- Make libg++ build with gcc -ansi -pedantic-errors
- * src/options.h: Lose commas at end of enumerator lists.
-
-Sun Dec 5 19:16:40 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
-
- * src/hash-table.cc (Hash_Table::~Hash_Table): Don't pass an
- argument to fprintf, since it's not expecting one.
-
-Fri Nov 26 19:03:18 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * src/list-node.cc: #undef index, for the sake of broken NeXT,
-
-Thu Nov 4 11:16:03 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (install): Use INSTALL_DATA for gperf.1.
-
-Mon Oct 25 18:40:51 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * src/key-list.cc (Key_List::read_keys): Use POW macro
- to increase hash table size to power of 2.
-
- * options.h (LARGE_STACK_ARRAYS): New flag. Defaults to zero.
- * gen-perf.cc, key-list.cc, read-line.cc:
- Only stack-allocate large arrays if LARGE_STACK_ARRAYS is set.
- * main.cc (main): Only call setrlimit (RLIMIT_STACK, ...)
- if LARGE_STACK_ARRAYS.
-
-Mon Oct 4 17:45:08 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * src/gen-perf.cc: Always use ANSI rand/srand instead of BSDisms.
-
-Wed Aug 18 12:19:53 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (src_all): Make less verbose output.
-
-Fri May 28 14:01:18 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * src/gen-perf.cc (Gen_Perf::change): Don't use gcc-specific
- 2-operand conditional expression.
- * src/key-list.cc (Key_List::output_lookup_array):
- Don't use variable-size stack arrays, unless compiled by g++.
-
-Tue May 4 14:08:44 1993 Per Bothner (bothner@cygnus.com)
-
- Changes (mostly from Peter Schauer) to permit compilation
- using cfront 3.0 and otherwise be ARM-conforming.
- * src/key-list.h: class Key_List must use public derivation
- of base class Std_Err (because Gen_Perf::operator() in gen-perf.cc
- calls Std_Err::report_error).
- * src/gen-perf.cc (Gen_Perf::affects_prev), src/hash-table.cc
- (Hash_Table::operator()): Don't use gcc-specific 2-operand
- conditional expression.
- * src/iterator.cc (Iterator::operator()): Don't use gcc-specific
- range construct in case label.
- * key-list.cc (Key_List::output_lookup_array, Key_List::read_keys),
- src/gen-perf.cc (Gen_Perf::operator(), src/read-line.cc
- (Read_Line::readln_aux): If not gcc, don't allocate
- variable-sized arrays on stack.
- * src/new.cc (operator new): Argument type should be size_t.
- * key-list.cc (Key_List::output_lookup_array, Key_List::read_keys),
- new/cc (::operator new): Don't use non-standard >?= operator.
-
-Tue Apr 27 20:11:30 1993 Per Bothner (bothner@cygnus.com)
-
- * src/Makefile.in: Define TARGETPROG, and use it.
-
-Mon Apr 19 00:29:18 1993 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in, configure.in: Re-vamped configure scheme.
- * gperf.texinfo: Renamed to gperf.texi.
- * src/bool-array.{h,cc}: ANSIfy bzero->memset.
-
-Sat Jan 30 20:21:28 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
-
- * tests/Makefile.in (mostlyclean): Also delete aout, cout, m3out,
- pout, and preout.
-
-Tue Dec 29 08:58:17 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in: pass $(FLAGS_TO_PASS) to all calls to make.
- (FLAGS_TO_PASS): added INSTALL, INSTALL_DATA, INSTALL_PROGRAM.
-
-Mon Dec 21 18:46:46 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * tests/expected.* renamed to *.exp to fit in 14 chars.
- * tests/Makefile.in: Update accordingly.
- Also rename output.* to *.out.
- * src/Makefile.in (clean): Remove gperf program.
-
-Wed Dec 9 14:33:34 1992 Per Bothner (bothner@cygnus.com)
-
- * src/hash-table.cc, src/bool-array.h: ANSIfy bzero->memset.
-
-Thu Dec 3 19:34:12 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in (distclean, realclean): Don't delete
- Makefile before recursing.
-
-Fri Nov 6 13:41:49 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * key-list.{h,cc}: Remove MAX_INT (and similar) constant
- fields from Key_List class, and use INT_MAX (etc) from limits.h.
- * key-list.{h,cc}, options.{h,cc}, vectors.h: Removed all
- uses of initialized const fields, as they are non-standard
- - and their use was easy to do away with. Mostly, just
- made the constants static non-fields in the .cc file.
-
-Mon Nov 2 13:10:11 1992 Per Bothner (bothner@cygnus.com)
-
- * tests/Makefile.in: When generating cinset.c, don't pass -C,
- since -C assumes an ANSI compiler. Add the -C flag (with -a)
- when generating test.out.3 instead.
- * tests/expected.out.3: Update accordingly.
-
-Wed Aug 12 11:47:54 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Factor out common flags into $(FLAGS_TO_PASS).
- * Makefile.in: 'install-info' depends on gperf.info.
-
-Mon Aug 10 11:39:52 1992 Ian Lance Taylor (ian@dumbest.cygnus.com)
-
- * Makefile.in, src/Makefile.in: always create installation
- directories.
-
-Mon Jul 20 15:33:21 1992 Mike Stump (mrs@cygnus.com)
-
- * src/new.cc (operator new): Add cast from void * to char *,
- since it is not a standard conversion.
-
-Wed Jun 17 16:25:30 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * src/gen-perf.cc: #include <_G_config.h> for _G_SYSV.
- * src/key-list.cc: alloca() hair.
- * src/main.cc (main): Only call getrlimit if _G_HAVE_SYS_RESOURCE.
- * Makefile,in, {src,test}/Makefile.in: Fix *clean rules.
-
-Fri May 29 13:21:13 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * src/gen-perf.cc: Replace USG -> _G_SYSV.
-
-Thu May 14 13:58:36 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * src/Makefile.in: Don't pass obsolete flag -DUNLIMIT_STACK.
- * tests/Makefile.in (clean): Fix.
-
-Sat Mar 7 00:03:56 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * gperf.texinfo: added menu item hook.
-
-Wed Feb 26 18:04:40 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in, configure.in: removed traces of namesubdir,
- -subdirs, $(subdir), $(unsubdir), some rcs triggers. Forced
- copyrights to '92, changed some from Cygnus to FSF.
-
-Sun Jan 26 19:21:58 1992 Per Bothner (bothner at cygnus.com)
-
- * tests/Makefile.in: Use re-directed stdin instead of file
- name in argv. This allows us to remove the filename
- from the output, the expected output, and hence the diffs.
- (Note that the input file is in $(srcdir), which we cannot
- place in the expected out files.)
- * tests/expected.out.[1235]: Edit out input filename,
- to match new output.
-
-Mon Nov 4 15:04:41 1991 Douglas C. Schmidt (schmidt at bastille.ics.uci.edu)
-
- * Need to do something about the end-of-line marker being
- hard-coded to '\n'...
-
- * Need to do something about the comment character being
- hard-coded to '#'...
-
-Fri Sep 27 09:30:15 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * Fixed a stupid problem with printout out a local enum with the
- -E option (I forgot to check for the case of 0 duplicates, so it
- was saying 1 duplicate instead!).
-
-Mon Aug 19 00:39:40 1991 Douglas C. Schmidt (schmidt at javel.ics.uci.edu)
-
- * Yow, all finished making gperf run with cfront/Saber C++. Not
- really all that hard, actually, though did need to remove some
- GNU specific hacks, like dynamically sized arrays and
- initializing class data members in their declarations, etc.
-
- * Bumped up the version # to reflect the recent changes.
-
-Sun Aug 18 22:25:32 1991 Douglas C. Schmidt (schmidt at javel.ics.uci.edu)
-
- * Changed passage of Options::usage function in Options.C to have
- a leading `&' so that Saber C++ wouldn't complain...
-
- * Added a new header file called gperf.h that includes system-wide
- info.
-
- * Hacked up the release to work with Saber C++! Changed all *.cc
- files to *.C.
-
-Mon Aug 5 21:18:47 1991 Douglas C. Schmidt (schmidt at net1.ics.uci.edu)
-
- * Yow, hacked in the nifty changes to the Std_Err error handling
- abstraction. This now adds format string support for printing
- out signals and the name of the function when things go wrong.
- Make changes throughout the source to make use of the new
- facilities and also to make sure all previous uses of
- Std_Err::report_error are now prefixed by the name of the class.
-
-Tue Jul 30 00:02:39 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * Make sure to add 1 to the Key_List::total_duplicates value when
- printing it out since any time we have more than zero duplicates
- we really have two or more duplicates!
-
- * Added support for the -O (optimize option). This option
- optimizes the generated lookup function by assuming that all
- input keywords are members of the keyset from the keyfile.
-
- * Added #define DUPLICATES and #define HASH_VALUE_RANGE (and of
- course the enum equivalent) to the generated output. Don't know
- how useful this will be, but it allows us to determine at a
- glance whether we've got a minimal perfect hash function (in
- which case TOTAL_KEYWORDS = HASH_VALUE_RANGE, and DUPLICATES =
- 0).
-
- * Fixed a small bug in the Key_List::output_keyword_table routine
- that caused an extra newline to be printed if there where no
- leading blank entries... (who cares, right?!)
-
-Mon Jul 29 22:05:40 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * Modified the handling of the -E (emit enums rather than
- #defines) option in conjunction with the -G option. Now, if -G
- and -E are given the enums are generated outside the lookup
- function, rather than within it!
-
- * Yow, as part of my Software Practice and Experience submission
- writeup I realized I needed to make the # comment character work
- correctly. Now if you put a backslash character ('\') in front
- of the # it treats the first character as a #. Naturally, to
- put a '\' character on the front of the line you need to escape
- it also, i.e.,
- \\I'm a line that starts with only one \
- # I'm a comment line
- \#define I'm walking a fine line... ;-)
-
-Wed Jun 26 11:21:02 1991 Douglas C. Schmidt (schmidt at bastille.ics.uci.edu)
-
- * Changed all uses of the identifier `iteration_number' to
- `generation_number' (also updated the paper!).
-
-Tue Apr 9 07:59:42 1991 Doug Schmidt (schmidt at net4.ics.uci.edu)
-
- * Had to change a whole bunch of little thangs in key-list.cc and
- list-node.cc to make the -I option work.
-
- * Changed an alloca statement in key-list.cc to reflect the
- strncasecmp modification (i.e., we now need to be able to
- allocate a longer buffer if the -I option is used).
-
-Mon Apr 8 18:17:04 1991 Doug Schmidt (schmidt at net4.ics.uci.edu)
-
- * Yucko, there was a bug in the handling of -c (and of course the
- new -I command in key-list.cc). Apparently when I added the
- super-duper hack that provided support for duplicate keys I
- forgot to update the strcmp output...
-
- * Boy, it has been a *long* time since I hacked this puppy. Let's
- see, I'm about to add long-overdue support for case-insensitive
- string comparisons to gperf's generated output code. We are
- going to employ the hitherto unused option -I to indicte this!
-
-Thu Jun 28 16:17:27 1990 Doug Schmidt (schmidt at brilliant)
-
- * Wow, first fix on the new job! There was a dumb error
- in Key_List::output_lookup_function, where I printed the
- string "&wordlist[key]" instead of the correct "&wordlist[index]".
-
- * Added a couple of #ifdefs for USG support.
-
-Sun Jun 3 17:16:36 1990 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Updated the version number to 2.5 and sent to Doug Lea for release
- with the latest GNU libg++.
-
- * Changed the error handling when a keyword file cannot be opened
- (now calls perror).
-
-Wed May 30 14:49:40 1990 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Instrumented the source code with trace statements automagically
- inserted using my new automated trace instrumentation tool!
-
-Wed May 9 11:47:41 1990 Doug Schmidt (schmidt at siam.ics.uci.edu)
-
- * Really fixed the previous bug. Turns out that a small amount
- of logic had to be duplicated to handle static links that occur
- as part of dynamic link chains. What a pain!!!
-
-Tue May 8 23:11:44 1990 Doug Schmidt (schmidt at siam.ics.uci.edu)
-
- * Fixed a stupid bug in Key_List::output_lookup_array that was
- causing incorrect counts to be generated when there were both
- static and dynamic links occurring for the same hash value.
- Also simplified the code that performs the logic in this routine.
-
-Mon Apr 30 17:37:24 1990 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Fixed stupid bug in Key_List::output_lookup_array that was
- making the generated lookup[] array contain `chars' even
- when the values stored in the chars are greater than 127!
-
- * Changed the behavior of the -G (global table) option so that it
- will output the `length[]' array in the global scope along with
- the `word_list[]' array.
-
- * Fixed a stupid bug in Key_List::output_lookup_function that
- would always output the complicated `duplicate-handling' lookup
- logic, even when there were no duplicates in the input!
-
- * Yikes, had to modify a bunch of stuff in key-list.cc to correctly
- handle duplicate entries. Changed the generated code so that
- the MIN_HASH_VALUE is no longer subtracted off when calculating
- the hash value for a keyword. This required changing some other
- code by substituting MAX_HASH_VALUE for TOTAL_KEYS in several places.
- Finally, this means that the generated tables may contain leading
- null entries, but I suppose it is better to trade-off space to get
- faster performance...
-
-Mon Mar 26 13:08:43 1990 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Updated version number to 2.4 to reflect the latest changes.
-
- * Changed the main program so that it always prints out gperf's
- execution timings to the generated output file.
-
-Sun Mar 25 12:39:30 1990 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Added the -Z option so that users can specify the name of the
- generated class explicitly. Updated documentation to reflect
- this change.
-
- * Modified the generated C++ class interface so that the functions
- are declared static (to remove the overhead of passing the `this'
- pointer). This means that operator()() can no longer be used,
- since it only works on non-static member functions.
- Also changed things so that there is no constructor (why waste
- the extra call, when it doesn't do anything, eh?)
-
- * Modified the behavior of Key_List::output when the -L C++ option
- is enabled. Previously the code generated use const data members
- to record MIN_WORD_LENGTH, MIN_HASH_VALUE, etc. However, as
- pointed out by James Clark this may result in suboptimal behavior
- on the part of C++ compilers that can't inline these values.
- Therefore, the new behavior is identical to what happens with
- -L C, i.e., either #defines or function-specific enums are used.
- Why sacrifice speed for some abstract notion of `code purity?' ;-)
-
-Tue Mar 6 18:17:42 1990 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Added the -E option that defines constant values using an enum
- local to the lookup function rather than with #defines. This
- also means that different lookup functions can reside in the
- same file. Thanks to James Clark (jjc@ai.mit.edu).
-
-Sat Mar 3 20:19:00 1990 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Added a special case to key_list::output_switch that doesn't
- generate extra comparisons when the `-S' is given an argument
- of 1 (the normal case). This should speed up the generated
- code output a tad...
-
-Fri Feb 23 14:21:28 1990 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Renamed all instances of member function get_keysig_size
- to get_max_keysig_size, since this is more precise...
-
- * Changed all occurrences of charset to keysig (stands for ``key
- signature'') to reflect the new naming convention used in the
- USENIX paper.
-
-Thu Feb 22 11:28:36 1990 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Changed the name of the generated associated values table from
- asso_value to asso_values to reflect conventions in the USENIX
- C++ paper.
-
-Thu Feb 15 23:29:03 1990 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Updated the gperf.texinfo file to fix some formatting problems
- that had crept in since last time.
-
-Wed Feb 14 23:27:24 1990 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Fixed stupid bug in key-list.cc (get_special_input), wher
- gperf replaced each '%' with the succeeding character.
-
- * Added support for multiple target language generation. Currently
- handled languages are C and C++, with C as the default. Updated
- documentation and option handler to reflect the changes.
-
- * Added a global destructor to new.cc and removed the #ifdef, since
- the bloody thing now works with libg++.
-
-Mon Feb 14 13:00:00 1990 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Found out that my gperf paper was accepted at the upcoming
- USENIX C++ Conference in San Francisco. Yow!
-
-Tue Jan 30 09:00:29 1990 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * #ifdef'd out the new.cc memory allocator, since there are
- problems with this and the libg++ stuff.
-
- * Changed key-list.h so that class Vectors is a public (rather
- than private) base class for class Key_List. The previous
- form was illegal C++, but wasn't being caught by the old
- g++ compiler. Should work now... ;-)
-
-Sun Dec 10 14:08:23 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added several changes from rfg@ics.uci.edu. These changes
- help to automate the build process.
-
-Wed Nov 15 15:49:33 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Removed conditional compilation for GATHER_STATISTICS. There's
- really no good reason to avoid collecting this info at run-time,
- since that section of code is *hardly* the bottleneck... ;-)
-
- * Simplified the C output routines in Key_List::set_output_types
- and Key_List::output_keyword_table a bit in order to
- speed-up and clean up the code generation.
-
- * Modified function Key_List::get_special_input so that it does
- not try to `delete' a buffer that turned out to be too short.
- This is important since the new memory management scheme
- does not handle deletions. However, adding a small amount of
- garbage won't hurt anything, since we generally don't do this
- operation more than a couple times *at most*!
-
- * Created a new file (new.cc) which includes my own overloaded
- operator new. This function should dramatically reduce the
- number of calls to malloc since it grabs large chunks and
- doles them out in small pieces. As a result of this change
- the class-specific `operator new' was removed from class List_Node.
-
-Tue Nov 14 21:45:30 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Continued to refine the great hack. The latest trick is to
- try and replace most uses of dynamic memory (i.e., calls to
- new) with uses of gcc dynamic arrays (i.e., an alloca solution).
- This makes life much easier for the overall process-size, since
- it reduces the amount of overhead for memory management. As a
- side-effect from this change there is no reason to have the
- Bool_Array::dispose member function, so it's outta here!
-
- * Fixed a stupid bug that was an disaster waiting to happen...
- Instead of making the boolean array large enough to index
- max_hash_value it was only large enough to index max_hash_value
- - 1. Once again, an off-by-one mistake in C/C++!!!!
-
-Mon Nov 13 19:38:27 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added the final great hack! This allows us to generate hash tables
- for near-perfect hash functions that contain duplicates, *without*
- having to use switch statements! Since many compilers die on large
- switch statements this feature is essential. Furthermore, it appears
- that the generated code is often *smaller* than that put out by
- compilers, even though a large, sparse array must be created.
- Here's the general idea:
-
- a. Generate the wordlist as a contiguous block of keywords,
- just as before when using a switch statement. This
- wordlist *must* be sorted by hash value.
-
- b. Generate the lookup array, which is an array of signed
- {chars,shorts,ints}, (which ever allows full coverage of
- the wordlist dimensions). If the value v, where v =
- lookup[hash(str,len)], is >= 0 and < TOTAL_KEYWORDS, then we
- simply use this result as a direct access into the wordlist
- array to snag the keyword for comparison.
-
- c. Otherwise, if v is < -TOTAL_KEYWORDS or > TOTAL_KEYWORDS
- this is an indication that we'll need to search through
- some number of duplicates hash values. Using a hash
- linking scheme we'd then index into a different part of
- the hash table that provides the starting index and total
- length of the duplicate entries to find via linear search!
-
-Sun Nov 12 13:48:10 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Simplified Key_List::output_min_max considerably by recognizing
- that since the keyword list was already sorted by hash value finding
- the min and max values is trivial!
-
- * Improved the debugging diagnostics considerably in classes Key_List,
- Hash_Table, and Gen_Perf.
-
- * Modified the `-s' option so that a negative argument is now
- interpreted to mean `allow the maximum associated value to be
- about x times *smaller* than the number of input keys.' This
- should help prevent massive explosion of generated hash table
- size for large keysets.
-
-Sat Nov 11 11:31:13 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added a field in class Key_List that counts the total number
- of duplicate keywords, both static and dynamic.
-
- * Added a new member function Bool_Array that deletes the dynamic
- memory allocated to Bool_Array::storage_array. This space may
- be needed for subsequent options, so it made sense to free it as
- soon as possible...
-
- * Renamed file/class Alpha_Vectors to Vectors, to avoid problems
- with 14 character length filenames on SYSV. Also changed file
- adapredefined.gperf to adadefs.gperf in the ./tests directory.
-
- * Modified class Options by changing the member function
- Options::total_positions to Options::get_charset_size and
- Options::set_charset_size. These two routines now either return
- the total charset size *or* the length of the largest keyword
- if the user specifies the -k'*' (ALLCHARS) option. This change
- cleans up client code.
-
- * Merged all the cperf changes into gperf.
-
- * Made sure to explicitly initialize perfect.fewest_collisions to
- 0.
-
- * Cleaned up some loose ends noticed by Nels Olson.
- 1. Removed `if (collisions <= perfect.fewest_collisions)'
- from Gen_Perf::affects_prev since it was superfluous.
- 2. Removed the fields best_char_value and best_asso_value
- from Gen_Perf. There were also unnecessary.
- 3. Fixed a braino in the Bool_Array::bool_array_reset
- function. Since iteration numbers can never be zero
- the `if (bool_array.iteration_number++ == 0)' must be
- `if (++bool_array.iteration_number == 0).'
- 4. Modified Std_Err::report_error so that it correctly handles
- "%%".
-
- * It is important to note that -D no longer enables -S.
- There is a good reason for this change, which will become
- manifested in the next release... (suspense!).
-
- * Made some subtle changes to Key_List::print_switch so that if finally
- seems to work correctly. Needs more stress testing, however...
-
- * Made a major change to the Key_List::print_switch function.
- The user can now specify the number of switch statements to generate
- via an argument to the -S option, i.e., -S1 means `generate 1
- switch statement with all keywords in it,' -S2 means generate
- 2 switch statements with 1/2 the elements in each one, etc.
- Hopefully this will fix the problem with C compilers not being
- able to generate code for giant switch statements (but don't
- hold your breath!)
-
- * Changed Key_List::length function to Key_List::keyword_list_length.
-
- * Added a feature to main.c that prints out the starting wall-clock
- time before the program begins and prints out the ending wall-clock
- time when the program is finished.
-
- * Added the GATHER_STATISTICS code in hash-table.c so we can
- keep track of how well double hashing is doing. Eventually,
- GATHER_STATISTICS will be added so that all instrumentation
- code can be conditionally compiled in.
-
- * Fixed a stupid bug in Key_List::print_switch routine. This
- was necessary to make sure the generated switch statement worked
- correctly when *both* `natural,' i.e., static links and dynamic
- links, i.e., unresolved duplicates, hash to the same value.
-
- * Modified Bool_Array::~Bool_Array destructor so that
- it now frees the bool_array.storage_array when it is no longer
- needed. Since this array is generally very large it makes sense
- to return the memory to the freelist when it is no longer in use.
-
- * Changed the interface to constructor Hash_Table::Hash_Table. This
- constructor now passed a pointer to a power-of-two sized buffer that
- serve as storage for the hash table. Although this weakens information
- hiding a little bit it greatly reduces dynamic memory fragmentation,
- since we can now obtain the memory via a call to alloca, rather
- than malloc. This change modified Key_List::read_keys calling
- interface.
-
- * Since alloca is now being used more aggressively a conditional
- compilation section was added in main.c. Taken from GNU GCC,
- this code gets rid of any avoidable limit on stack size so that
- alloca does not fail. It is only used if the -DRLIMIT_STACK
- symbol is defined when gperf is compiled.
-
- * Added warnings in option.c so that user's would be informed
- that -r superceeds -i on the command-line.
-
- * Rewrote Gen_Perf::affects_prev. First, the code structure
- was cleaned up considerably (removing the need for a dreaded
- goto!). Secondly, a major change occurred so that Gen_Perf::affects_prev
- returns FALSE (success) when fewest_hits gets down to whatever
- it was after inserting the previous key (instead of waiting for
- it to reach 0). In other words, it stops trying if it can
- resolve the new collisions added by a key, even if there are
- still other old, unresolved collisions. This modification was
- suggested by Nels Olson and seems to *greatly* increase the
- speed of gperf for large keyfiles. Thanks Nels!
-
- * In a similar vein, inside the Gen_Perf::change routine
- the variable `perfect.fewest_collisions is no longer initialized
- with the length of the keyword list. Instead it starts out at
- 0 and is incremented by 1 every time change () is called.
- The rationale for this behavior is that there are times when a
- collision causes the number of duplicates (collisions) to
- increase by a large amount when it would presumably just have
- gone up by 1 if none of the asso_values were changed. That is,
- at the beginning of change(), you could initialize fewest_hits
- to 1+(previous value of fewest_hits) instead of to the number of
- keys. Thanks again, Nels.
-
- * Replaced alloca with new in the Gen_Perf::change function.
- This should eliminate some overhead at the expense of a little
- extra memory that is never reclaimed.
-
- * Renamed Gen_Perf::merge_sets to Gen_Perf::compute_disjoint_union
- to reflect the change in behavior.
-
- * Added the -e option so users can supply a string containing
- the characters used to separate keywords from their attributes.
- The default behavior is ",\n".
-
- * Removed the char *uniq_set field from LIST_NODE and modified
- uses of uniq_set in perfect.c and keylist.c. Due to changes
- to Gen_Perf::compute_disjoint_sets this field was no longer
- necessary, and its removal makes the program smaller and
- potentially faster.
-
- * Added lots of changes/fixes suggested by Nels Olson
- (umls.UUCP!olson@mis.ucsf.edu). In particular:
- 1. Changed Bool_Array so that it would dynamically create
- an array of unsigned shorts rather than ints if the
- LO_CAL symbol was defined during program compilation.
- This cuts the amount of dynamic memory usage in half,
- which is important for large keyfile input.
- 2. Added some additional debugging statements that print extra
- info to stderr when the -d option is enabled.
- 3. Fixed a really stupid bug in Key_List::print_switch
- A right paren was placed at the wrong location, which broke
- strlen ().
- 4. Fixed a subtle problem with printing case values when keylinks
- appear. The logic failed to account for the fact that there
- can be keylinks *and* regular node info also!
- 5. Changed the behavior of Key_List::read_keys so that it would
- honor -D unequivocally, i.e., it doesn't try to turn off dup
- handling if the user requests it, even if there are no
- immediate links in the keyfile input.
- 6. Modified the -j option so that -j 0 means `try random values
- when searching for a way to resolve collisions.'
- 7. Added a field `num_done' to the Gen_Perf struct. This is used
- to report information collected when trying to resolve
- hash collisions.
- 8. Modified the merge_sets algorithm to perform a disjoint
- union of two multisets. This ensures that subsequent
- processing in Gen_Perf::affect_prev doesn't
- waste time trying to change an associated value that is
- shared between two conflicting keywords.
- 9. Modified Gen_Perf::affects_prev so that it doesn't try
- random jump values unless the -j 0 option is enabled.
- 10. Fixed a silly bug in Gen_Perf::change. This problem caused
- gperf to seg fault when the -k* option was given and the
- keyfile file had long keywords.
-
-Sun Oct 29 00:18:55 1989 Doug Schmidt (schmidt at siam.ics.uci.edu)
-
- * Modified class-specific new operations for Read_Line and
- List_Node so they don't fail if SIZE is larger than twice
- the previous buffer size. Note we double buffer size
- everytime the previous buffer runs out, as a heuristic
- to reduce future calls to malloc.
-
-Sun Oct 22 13:49:43 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Updated gperf version number to 2.0. Send to Doug Lea for
- incorporation into the long-awaited `official' libg++ 1.36
- release!
-
- * Thanks to Nels Olson a silly bug in Gen_Perf::change ()
- was fixed. This problem caused gperf to seg fault when
- the -k* option was given and the keyfile file had long
- keywords.
-
- * Modified Key_List::print_hash_function so that it output
- max_hash_value + 1 (rather than just max_hash_value) for
- any associated value entries that don't correspond to
- keyword charset characters. This should speed up rejection
- of non-keyword strings a little in some cases.
-
-Sat Oct 21 19:28:36 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Fixed Key_List::print_hash_function so that it no longer output
- things like `return 0 + ...' Although this probably gets
- optimized away by even the worst C compilers there isn't any
- point tempting fate... ;-)
-
- * Fixed class List_Node's constructor so that it wouldn't a priori
- refuse to consider trying to hash keys whose length is less
- than the smallest user-specified key position. It turns out
- this is not a problem unless the user also specifies the -n
- (NOLENGTH) option, in which case such keys most likely
- don't have a prayer of being hashed correctly!
-
- * Changed the name of the generated lookup table from `Hash_Table'
- to `asso_value' to be consistent with the gperf paper.
-
-Tue Oct 17 14:19:48 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added a flag GATHER_STATISTICS in the Makefile. If defined
- during compilation this turns on certain collection facilities
- that track the performance of gperf during its execution. In
- particular, I want to see how many collisions occur for the
- double hashing Hash_Table.
-
- * Added a safety check so that we don't screw up if the total
- number of `resets' of the Bool_Array exceeds MAX_INT. Since
- this number is around 2^31 it is unlikely that this would ever
- occur for most input, but why take the risk?
-
- * Changed the behavior for the -a (ANSI) option so that the
- generated prototypes use int rather than size_t for the LEN
- parameter. It was too ugly having to #include <stddef.h> all
- over the place...
-
-Mon Oct 16 11:00:35 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Continued to work on the gperf paper for the USENIX C++
- conference. At some point this will be merged back into
- the gperf documentation...
-
-Sat Oct 14 20:29:43 1989 Doug Schmidt (schmidt at siam.ics.uci.edu)
-
- * Added a majorly neat hack to Bool_Array, suggested by rfg.
- The basic idea was to throw away the Ullman array technique.
- The Ullman array was used to remove the need to reinitialize all
- the Bool_Array elements to zero everytime we needed to determine
- whether there were duplicate hash values in the keyword list.
- The current trick uses an `iteration number' scheme, which takes
- about 1/3 the space and reduces the overall program running a
- time by about 20 percent for large input! The hack works as
- follows:
-
- 1. Dynamically allocation 1 boolean array of size k.
- 2. Initialize the boolean array to zeros, and consider the first
- iteration to be iteration 1.
- 2. Then on all subsequent iterations we `reset' the bool array by
- kicking the iteration count by 1.
- 3. When it comes time to check whether a hash value is currently
- in the boolean array we simply check its index location. If
- the value stored there is *not* equal to the current iteration
- number then the item is clearly *not* in the set. In that
- case we assign the iteration number to that array's index
- location for future reference. Otherwise, if the item at
- the index location *is* equal to the iteration number we've
- found a duplicate. No muss, no fuss!
-
-Mon Oct 2 12:30:54 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Changed some consts in options.h to enumerals, since g++
- doesn't seem to like them at the moment!
-
-Sat Sep 30 12:55:24 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Fixed a stupid bug in Key_List::print_hash_function that manifested
- itself if the `-k$' option was given (i.e., only use the key[length]
- character in the hash function).
-
- * Added support for the -C option. This makes the contents of
- all generated tables `readonly'.
-
- * Changed the handling of generated switches so that there is
- only one call to str[n]?cmp. This *greatly* reduces the size of
- the generated assembly code on all compilers I've seen.
-
- * Fixed a subtle bug that occurred when the -l and -S option
- was given. Code produced looked something like:
-
- if (len != key_len || !strcmp (s1, resword->name)) return resword;
-
- which doesn't make any sense. Clearly, this should be:
-
- if (len == key_len && !strcmp (s1, resword->name)) return resword;
-
-Tue Sep 26 10:36:50 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Changed class Read_Line's definition so that it no longer
- needs to know about the buffering scheme used to speed up
- dynamic memory allocation of input keywords and their
- associated attributes. This means that operator new is no longer
- a friend of Read_Line.
-
-Mon Sep 25 23:17:10 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Decided that Obstacks had too much overhead, so they were
- removed in favor of super-efficient, low-overhead buffered
- storage allocation hacks in Read_Line and List_Node.
-
- * No longer try to inline functions that g++ complains about
- (Key_List::Merge and Key_List::Merge_Sort).
-
-Sun Sep 24 13:11:24 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Changed classes Read_Line and List_Node to use Obstacks in order
- to cache memory allocation for keyword strings and List_Nodes.
-
- * Continued to experiment with inheritance schemes.
-
- * Added a new file `alpha.h', that declares static data shared
- (i.e., inherited) between classes List_Node and Key_List.
-
-Tue Sep 12 16:14:41 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Made numerous changes to incorporate multiple inheritance in
- gperf.
-
-Wed Aug 16 23:04:08 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added the -DCOMPILER_FIXED flag to the ./src/Makefile. This
- implies that people trying to compile gperf need to have a
- working version of the new g++ compiler (1.36.0).
-
- * Removed some extra spaces that were being added in the generated
- C code.
-
-Mon Jul 24 17:09:46 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Fixed PRINT_HASH_FUNCTION and PRINT_LOOKUP_FUNCTION in keylist.c
- so that the generated functions take an unsigned int length argument.
- If -a is enabled the prototype is (const char *str, size_t len).
-
-Fri Jul 21 13:06:15 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Fixed a typo in PRINT_KEYWORD_TABLE in keylist.cc that prevented
- the indentation from working correctly.
-
- * Fixed a horrible typo in PRINT_KEYWORD_TABLE in keylist.cc
- that prevented links from being printed correctly.
-
-Tue Jul 18 16:04:31 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Fixed up readline.cc and readline.h so that they work OK
- with g++ compilers that aren't completely up-to-date.
- If symbol COMPILER_FIXED is defined then the behavior
- that works on my more recent version of g++ is enabled.
-
-Sun Jul 9 17:53:28 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Changed the ./tests subdirectory Makefile so that it
- uses $(CC) instead of gcc.
-
-Sun Jul 2 21:52:15 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Fixed a number of subtle bugs that occurred when -S was
- combined with various and sundry options.
-
- * Added the -G option, that makes the generated keyword table
- a global static variable, rather than hiding it inside
- the lookup function. This allows other functions to directly
- access the contents in this table.
-
- * Added the "#" feature, that allows comments inside the keyword
- list from the input file. Comment handling takes place in readline.c.
- This simplifies the code and reduces the number of malloc calls.
-
- * Also added the -H option (user can give the name of the hash
- function) and the -T option (prevents the transfer of the type decl
- to the output file, which is useful if the type is already defined
- elsewhere).
-
-Thu Jun 22 20:39:39 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Modified many classes so that they would inherit Std_Err as
- a base class. This makes things more abstract...
-
-Fri Jun 16 14:23:00 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Modified the -f (FAST) option. This now takes an argument.
- The argument corresponds to the number of iterations used
- to resolve collisions. -f 0 uses the length of the
- keyword list (which is what -f did before). This makes
- life much easier when dealing with large keyword files.
-
-Tue Jun 6 17:53:27 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added the -c (comparison) option. Enabling this
- will use the strncmp function for string comparisons.
- The default is to use strcmp.
-
- * Fixed a typo in key_list.cc (PRINT_SWITCH). This caused
- faulty C code to be generated when the -D, -p, and -t
- options were all enabled.
-
-Thu May 25 14:07:21 1989 Doug Schmidt (schmidt at siam.ics.uci.edu)
-
- * Once again, changed class Read_Line to overload global operator
- new. Hopefully, this will work...!
-
-Sun May 21 01:51:45 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Modified Key_List::print_hash_function () so that it properly
- formats the associated values in the hash table according to
- the maximum number of digits required to represent the largest
- value.
-
- * Removed the named return value from class Hash_Table's
- operator (), since this causes a seg fault when -O is enabled.
- No sense tripping subtle g++ bugs if we don't have to.... ;-)
-
- * Removed the operator new hack from Read_Line, since this seemed
- to create horrible bus error problems.
-
- * Changed many class member functions and data members to be `static',
- if they don't manipulate this!
-
-Fri May 12 23:06:56 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Changed class Std_Err to use static member functions, a la
- Ada or Modula 2. This eliminates the need for an explicit
- error-handler class object.
-
- * Added the ``named return value'' feature to Hash_Table::operator ()
- and Bool_Array::operator [], just for the heck of it.... ;-)
-
- * Changed the previous hack in Read_Line so that we now use
- the overloaded global `new' instead of NEW_STRING!
-
-Wed May 3 17:36:55 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Updated to version 1.7. This reflects the recent major changes
- and the new C port.
-
- * Modified the GNU getopt.cc routine to have a class-based interface.
-
- * Fixed a typo in Perfect.cc ~Perfect that prevented the actual maximum
- hash table size from being printed (maybe the stream classes
- weren't so bad after all.... ;-).
-
- * Added support for the -f option. This generates the perfect
- hash function ``fast.'' It reduces the execution time of
- gperf, at the cost of minimizing the range of hash values.
-
-Tue May 2 16:23:29 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Added an efficiency hack to Read_Line. Instead of making
- a call to operator NEW (a.k.a. malloc) for each input string
- a new member function NEW_STRING stores a large buffer from
- which new strings are carved out, growing the buffer if
- necessary. It might be useful to add this throughout the
- program....
-
- * Removed all unnecessary calls to DELETE. If the program is about
- to exit it is silly to waste time freeing memory.
-
- * Added the GNU getopt program to the distribution. This makes
- GPERF portable to systems that don't include getopt in libc.
-
- * Added a strcspn member to class Key_List. This also increases
- portability.
-
- * Added the get_include_src function from keylist.c as a member
- function in class Key_List. Hopefully every function is
- now associated with a class. This aids abstraction and
- modularity.
-
- * Ported gperf to C. From now on both K&R C and GNU G++ versions
- will be supported. There will be two ChangeLog files, one
- for each version of the program.
-
-Mon May 1 16:41:45 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Fixed a bug with -k'*'. This now prints out *all* the cases
- up to the length of the longest word in the keyword set.
-
-Sun Apr 30 12:15:25 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Removed all use of the stream classes. Too ugly, slow, and
- not handled by the c++-mode formatter....
-
- * Modified the handling of links (i.e., keywords that have
- identical hash values as other keywords). This should
- speed up hash function generation for keyword sets with
- many duplicate entries. The trick is to treat duplicate
- values as equivalence classes, so that each set of duplicate
- values is represented only once in the main list processing.
-
- * Fixed some capitialization typos and indentations mistakes in
- Key_List::print_hash_function.
-
-Sat Apr 29 12:04:03 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Fixed a typo/logico in Key_List::print_switch that prevented
- the last keyword in the keyword list to be print out. This
- requires further examination.....
-
- * Fixed a stupid bug in List_Node::List_node. If the -k'*' option
- was enabled the KEY_SET string wasn't getting terminated with
- '\0'!
-
-Fri Apr 28 12:38:35 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Renamed strexp.h and strexp.cc to iterator.h and iterator.cc.
- Also changed the strexp class to iterator. Continued to work
- on style...
-
- * Updated the version number to 1.6. This reflects all the
- recent changes.
-
-Thu Apr 27 00:14:51 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added the -D option that properly handles keyword sets that
- contain duplicate hash values.
-
- * Continued the stylistic changes. Added the #pragma once
- directive to all the *.h files. Removed all #defines and
- replaced them with static consts. Also moved the key_sort
- routine from options.cc into the options class as a
- member function.
-
-Mon Apr 3 13:26:55 1989 Doug Schmidt (schmidt at zola.ics.uci.edu)
-
- * Made massive stylistic changes to bring source code into
- conformance with GNU style guidelines.
-
-Thu Mar 30 23:28:45 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Fixed up the output routines so that they generate code
- corresponding to the GNU style guidelines.
-
-Sat Mar 11 13:12:37 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Fixed Stderr constructors so that they wouldn't try to
- use the base class initializer syntax for the static
- class variable Program_Name. G++ 1.34 is stricter in
- enforcing the rules!
-
-Fri Mar 10 11:24:14 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Removed -v and ``| more'' from the Makefile to keep rfg happy...
-
-Thu Mar 2 12:37:30 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Sent latest GNU gperf version 1.5 to Doug Lea for inclusion
- into libg++ 1.34. Note that there is a small bug with
- the new %{ ... %} source inclusion facility, since it doesn't
- understand comments and will barf if %{ or %} appear nested
- inside the outermost delimiters. This is too trivial of
- a defect to fix at the moment...
-
-Tue Feb 28 11:19:58 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added the -K option, which allows the user to provide a
- alternative name for the keyword structure component.
- The default is still ``name.''
-
- * Added the LEX and YACC-like ability to include arbitrary
- text at the beginning of the generated C source code output.
- This required two new functions Get_Special_Input,
- Key_List::Save_Include_Src;
-
- * Fixed memory allocation bug in Key_List::Set_Types.
- Variable Return_Type needs 1 additional location
- to store the "*" if the -p option is used.
-
- * Added code to NULL terminate both Struct_Tag and Return_Type,
- *after* the strncpy (stupid mistake).
-
-Mon Feb 27 14:39:51 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added a new option -N. This allows the user to specify the
- name to be used for the generated lookup function. The
- default name is still ``in_word_set.'' This makes it
- possible to completely automate the perfect hash function
- generation process!
-
-Mon Feb 20 23:33:14 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Corrected the Hash_Table::operator () function so that
- *it* is responsible for deciding when a new key has the
- same signature as a previously seen key. The key length
- information is now used internally to this function to
- decide whether to add to the hash table those keys with
- the same key sets, but different lengths. Before, this
- was handled by the Key_List::Read_Keys function. However,
- this failed to work for certain duplicate keys, since
- they weren't being entered into the hash table properly.
-
-Sun Feb 19 16:02:51 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Modified class Options by moving the enum Option_Type out
- of the class. This is to satisfy the new enumeration
- scope rules in C++.
-
-Sun Jan 15 15:12:09 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Incremented the version number upto 1.4 to reflect the new
- options that affect the generated code. Send the new
- distribution off to Michael for use with g++ 1.33.
-
- * Added a fix to Key_List::Read_Keys so that it checks for links
- properly when the -n option is used. Previously, it didn't
- catch obvious links, which caused it to spend large amount
- of time searching for a solution that could never occur!
-
- * Modified the Key_List data structure to record *both* the
- minimum and the maximum key lengths. This information
- is now computed in Key_List::Read_Keys, and thus
- Key_List::Print_Min_Max doesn't need to bother.
-
- * Modifed the key position iterator scheme in options.cc to
- eliminate the need for member function Options::Advance.
- Now, the Options::Get function performs the advancement
- automatically, obviating the need for an extra function call.
-
- * Added the new function Options::Print_Options, to print out
- the user-specified command line options to generated C
- output file.
-
- * Added a new function, Key_List::Print_Keylength_Table,
- which creates a table of lengths for use in speeding
- up the keyword search. This also meant that a new
- option, -l (LENTABLE) is recognized. It controls
- whether the length table is printed and the comparison
- made in the generated function ``in_word_set.''
-
- * Added a comment at the top of the generated C code
- output file that tells what version of gperf was used.
- Next, I'll also dump out the command line options
- as a comment too. Thanks to Michael Tiemann for the
- feedback on this.
-
- * Fixed the -n option to make it work correctly with
- other parts of the program (most notably the Perfect::Hash
- function and the computation of minimum and maximum lengths.
-
-Fri Jan 13 21:25:27 1989 Doug Schmidt (schmidt at siam.ics.uci.edu)
-
- * Realized the the need to add a test that will enable
- optimziation of the generated C code in the ``hash'' function
- by checking whether all the requested key positions are
- guaranteed to exist due to the comparison in `in_word_set.''
- I'll put this in soon....
-
-Thu Jan 12 20:09:21 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Added pascal, modula3, and modula2 tests inputs to the
- Makefile
-
- * Recognised that there is a bug with the -n option. However
- I'm too busy to fix it properly, right now. The problem
- is that the generated #define end up being 0, since that's
- my hack to make -n work. This needs complete rethinking!
-
-Tue Jan 10 00:08:16 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Added a new option, -n, that instructs gperf to not use the
- length of an identifier when computing the hash functions.
- I'm not sure how useful this is!
-
- * Retransmitted the distribution to rocky.oswego.edu. Hopefully,
- this will work!
-
- * Began fixing the indentation and capitalization to conform
- to the GNU coding guidelines.
-
-Mon Jan 9 22:23:18 1989 Doug Schmidt (schmidt at pompe.ics.uci.edu)
-
- * Fixed horrible bug in Read_Line::Readln_Aux. This was
- a subtle and pernicous off-by-1 error, that overwrote
- past the last character of the input string buffer. I
- think this fault was killing the vax!
-
- * Yow, fixed an oversight in List_Node::List_Node, where the
- pointer field Next was uninitialized. Luckily, the new routine
- seems to return 0 filled objects the first time through!
-
-Sun Jan 8 13:43:14 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Modified the ``key linked'' diagnostic in Key_List::Read_Keys
- to be more helpful and easy to read.
-
- * Fixed the List_Node::List_Node so that it would ignore trailing
- fields if the -t option was not enabled.
-
- * Moved the List_Node declarations out of keylist.h and
- into a file of its own, called listnode.cc and listnode.h
- Made Set_Sort a member function of class List_Node.
-
- * Massively updated the documentation in the gperf.texinfo file.
-
- * Polished off the major revision to the print functions,
- added a few new tests in the Makefile to check for the
- validity of the program and ftp'ed the entire distribution
- off to Doug Lea for libg++. ( changed it to
- 1.3 to reflect the major changes with the generated
- C code ).
-
- * Fixed Key_List::Print_Switch to deal with the -p and -t options.
- This meant that the ``still-born'' function Key_List::
- Print_Type_Switch was superflous, so I removed it.
- Also, removed the restriction in Option that the -p and
- -t options couldn't be used simultaneously.
-
- * Modified List_Node::List_Node, to perform only 1 call to
- ``new'' when dynamically allocating memory for the Key_Set
- and the Uniq_Set.
-
-Sat Jan 7 14:10:51 1989 Doug Schmidt (schmidt at glacier.ics.uci.edu)
-
- * Fixed a big bug with the new policy of nesting the
- wordlist inside of generated function ``in_word_set.''
- I'd forgotten to declare the wordlist array as static!
- ( arrgh ).
-
- * Added a new function Key_List::Set_Types, that figures out
- the return type for generated function ``in_word_set,''
- the user-defined ``struct tag,'' if one is used, and also
- formates the array type for the static local array.
-
- * Changed the print routines to take advantage of the
- new -p option.
-
- * Began adding the hooks to allow the return of a pointer
- to a user defined struct location from the generated
- ``in_word_set'' function instead of the current 0 or 1
- return value. Created function Key_List::Print_Type_Switch
- and added option -p to class Option, allowing the user to
- request generation of the aforementioned pointers returned
- instead of booleans.
-
- * Put in checks in class Option to make sure that -S and -t
- options are not used simultaneously. This restriction
- will be removed in subsequent releases, once I decide on
- a clean way to implement it.
-
- * Sent version 1.2 to Doug Lea for possible inclusion into
- the libg++ distribution.
-
- * Moved the static word_list array inside the generated function
- in_word_set. This supports better data hiding.
-
- * Added a texinfo file, gperf.texinfo
-
- * Revised the Makefile to cleanup the droppings from texinfo
- and changed the name of gperf.cc and gperf.h to perfect.cc
- and perfect.h.
-
-Fri Jan 6 13:04:45 1989 Doug Schmidt (schmidt at crimee.ics.uci.edu)
-
- * Implemented the switch statement output format. Much better
- for large datasets in terms of space used.
-
- * Added new functions to break up the Key_List::Output function.
- Functions added were Key_List::Print_Switch,
- Key_List::Print_Min_Max, Key_List::Print_Keyword_Table,
- Key_List::Print_Hash_Function, and
- Key_List::Print_Lookup_Function. This simplifies the big mess
- in Key_List::Output considerably!
-
- * Added switch statement option to Options, which potentially
- trades time for space in the generated lookup code.
-
-Thu Jan 5 22:46:34 1989 Doug Schmidt (schmidt at siam.ics.uci.edu)
-
- * Released version 1.1
-
- * Fixed a bug with Gperf::Merge_Set, it was skipping letters
- shared between the Set_1 and Set_2.
-
- * Added the optimal min/max algorithm in Key_List::Output. This
- runs in O (3n/2), rather than O (2n) time.
-
- * Changed Gperf::Sort_Set to use insertion sort, rather than
- bubble sort.
-
- * Added a check in Key_List::Output for the special case where
- the keys used are 1,$. It is possible to generate more
- efficient C code in this case.
diff --git a/apps/gperf/Makefile b/apps/gperf/Makefile
deleted file mode 100644
index 11d7fbf4847..00000000000
--- a/apps/gperf/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Orbix applications
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = src \
- tests
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
-
diff --git a/apps/gperf/README b/apps/gperf/README
deleted file mode 100644
index 956db3e570f..00000000000
--- a/apps/gperf/README
+++ /dev/null
@@ -1,28 +0,0 @@
-While teaching a data structures course at University of California,
-Irvine, I developed a program called GPERF that generates perfect hash
-functions for sets of key words. A perfect hash function is simply:
-
- A hash function and a data structure that allows
- recognition of a key word in a set of words using
- exactly 1 probe into the data structure.
-
-The gperf.texinfo file explains how the program works, the form of the
-input, what options are available, and hints on choosing the best
-options for particular key word sets. The texinfo file is readable
-both via the GNU emacs `info' command, and is also suitable for
-typesetting with TeX.
-
-The enclosed Makefile creates the executable program ``gperf'' and
-also runs some tests.
-
-Output from the GPERF program is used to recognize reserved words in
-the GNU C, GNU C++, and GNU Pascal compilers, as well as with the GNU
-indent program.
-
-For more information on GPERF, please see
-
-http://www.cs.wustl.edu/~schmidt/C++-USENIX-90.ps.gz
-
-Happy hacking!
-
-Douglas C. Schmidt
diff --git a/apps/gperf/gperf.1 b/apps/gperf/gperf.1
deleted file mode 100644
index 5673c80062a..00000000000
--- a/apps/gperf/gperf.1
+++ /dev/null
@@ -1,23 +0,0 @@
-.TH GPERF 1 "December 16, 1988
-.UC 4
-.SH NAME
-gperf \- generate a perfect hash function from a key set
-.SH SYNOPSIS
-.B gperf
-[
-.B \-adghijklnoprsStv
-] [
-.I keyfile
-]
-.SH DESCRIPTION
-
-\fIgperf\fP reads a set of ``keys'' from \fIkeyfile\fP (or, by
-default, from the standard input) and attempts to find a non-minimal
-perfect hashing function that recognizes a member of the key set in
-constant, i.e., O(1), time. If such a function is found the program
-generates a pair of \fIC\fP source code routines that perform the
-hashing and table lookup. All generated code is directed to the
-standard output.
-
-Please refer to the \fIgperf.texinfo\fP file for more information.
-This file is distributed with \fIgperf\fP release.
diff --git a/apps/gperf/gperf.info b/apps/gperf/gperf.info
deleted file mode 100644
index a0947230573..00000000000
--- a/apps/gperf/gperf.info
+++ /dev/null
@@ -1,1127 +0,0 @@
-This is Info file gperf.info, produced by Makeinfo-1.55 from the input
-file ./gperf.texi.
-
-START-INFO-DIR-ENTRY
-* Gperf: (gperf). Perfect Hash Function Generator.
-END-INFO-DIR-ENTRY
-
- This file documents the features of the GNU Perfect Hash Function
-Generator
-
- Copyright (C) 1989 Free Software Foundation, Inc.
-
- Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided also
-that the section entitled "GNU General Public License" is included
-exactly as in the original, and provided that the entire resulting
-derived work is distributed under the terms of a permission notice
-identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that the section entitled "GNU `gperf' General Public
-License" an d this permission notice may be included in translations
-approved by the Free Software Foundation instead of in the original
-English.
-
-
-File: gperf.info, Node: Top, Next: Copying, Prev: (dir), Up: (dir)
-
-Introduction
-************
-
- This manual documents the GNU `gperf' perfect hash function generator
-utility, focusing on its features and how to use them, and how to report
-bugs.
-
-* Menu:
-
-* Copying:: GNU `gperf' General Public License says
- how you can copy and share `gperf'.
-* Contributors:: People who have contributed to `gperf'.
-* Motivation:: Static search structures and GNU GPERF.
-* Search Structures:: Static search structures and GNU `gperf'
-* Description:: High-level discussion of how GPERF functions.
-* Options:: A description of options to the program.
-* Bugs:: Known bugs and limitations with GPERF.
-* Projects:: Things still left to do.
-* Implementation:: Implementation Details for GNU GPERF.
-* Bibliography:: Material Referenced in this Report.
-
- -- The Detailed Node Listing --
-
-High-Level Description of GNU `gperf'
-
-* Input Format:: Input Format to `gperf'
-* Output Format:: Output Format for Generated C Code with `gperf'
-
-Input Format to `gperf'
-
-* Declarations:: `struct' Declarations and C Code Inclusion.
-* Keywords:: Format for Keyword Entries.
-* Functions:: Including Additional C Functions.
-
-
-File: gperf.info, Node: Copying, Next: Contributors, Prev: Top, Up: Top
-
-GNU GENERAL PUBLIC LICENSE
-**************************
-
- Version 1, February 1989
-
- Copyright (C) 1989 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
-
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-Preamble
-========
-
- The license agreements of most software companies try to keep users
-at the mercy of those companies. By contrast, our General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. The
-General Public License applies to the Free Software Foundation's
-software and to any other program whose authors commit to using it.
-You can use it for your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Specifically, the General Public License is designed to make
-sure that you have the freedom to give away or sell copies of free
-software, that you receive source code or can get it if you want it,
-that you can change the software or use pieces of it in new free
-programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of a such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must tell them their rights.
-
- We protect your rights with two steps: (1) copyright the software,
-and (2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 1. This License Agreement applies to any program or other work which
- contains a notice placed by the copyright holder saying it may be
- distributed under the terms of this General Public License. The
- "Program", below, refers to any such program or work, and a "work
- based on the Program" means either the Program or any work
- containing the Program or a portion of it, either verbatim or with
- modifications. Each licensee is addressed as "you".
-
- 2. You may copy and distribute verbatim copies of the Program's source
- code as you receive it, in any medium, provided that you
- conspicuously and appropriately publish on each copy an
- appropriate copyright notice and disclaimer of warranty; keep
- intact all the notices that refer to this General Public License
- and to the absence of any warranty; and give any other recipients
- of the Program a copy of this General Public License along with
- the Program. You may charge a fee for the physical act of
- transferring a copy.
-
- 3. You may modify your copy or copies of the Program or any portion of
- it, and copy and distribute such modifications under the terms of
- Paragraph 1 above, provided that you also do the following:
-
- * cause the modified files to carry prominent notices stating
- that you changed the files and the date of any change; and
-
- * cause the whole of any work that you distribute or publish,
- that in whole or in part contains the Program or any part
- thereof, either with or without modifications, to be licensed
- at no charge to all third parties under the terms of this
- General Public License (except that you may choose to grant
- warranty protection to some or all third parties, at your
- option).
-
- * If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the simplest and most usual way, to print
- or display an announcement including an appropriate copyright
- notice and a notice that there is no warranty (or else,
- saying that you provide a warranty) and that users may
- redistribute the program under these conditions, and telling
- the user how to view a copy of this General Public License.
-
- * You may charge a fee for the physical act of transferring a
- copy, and you may at your option offer warranty protection in
- exchange for a fee.
-
- Mere aggregation of another independent work with the Program (or
- its derivative) on a volume of a storage or distribution medium
- does not bring the other work under the scope of these terms.
-
- 4. You may copy and distribute the Program (or a portion or
- derivative of it, under Paragraph 2) in object code or executable
- form under the terms of Paragraphs 1 and 2 above provided that you
- also do one of the following:
-
- * accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of
- Paragraphs 1 and 2 above; or,
-
- * accompany it with a written offer, valid for at least three
- years, to give any third party free (except for a nominal
- charge for the cost of distribution) a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Paragraphs 1 and 2 above; or,
-
- * accompany it with the information you received as to where the
- corresponding source code may be obtained. (This alternative
- is allowed only for noncommercial distribution and only if you
- received the program in object code or executable form alone.)
-
- Source code for a work means the preferred form of the work for
- making modifications to it. For an executable file, complete
- source code means all the source code for all modules it contains;
- but, as a special exception, it need not include source code for
- modules which are standard libraries that accompany the operating
- system on which the executable file runs, or for standard header
- files or definitions files that accompany that operating system.
-
- 5. You may not copy, modify, sublicense, distribute or transfer the
- Program except as expressly provided under this General Public
- License. Any attempt otherwise to copy, modify, sublicense,
- distribute or transfer the Program is void, and will automatically
- terminate your rights to use the Program under this License.
- However, parties who have received copies, or rights to use
- copies, from you under this General Public License will not have
- their licenses terminated so long as such parties remain in full
- compliance.
-
- 6. By copying, distributing or modifying the Program (or any work
- based on the Program) you indicate your acceptance of this license
- to do so, and all its terms and conditions.
-
- 7. Each time you redistribute the Program (or any work based on the
- Program), the recipient automatically receives a license from the
- original licensor to copy, distribute or modify the Program
- subject to these terms and conditions. You may not impose any
- further restrictions on the recipients' exercise of the rights
- granted herein.
-
- 8. The Free Software Foundation may publish revised and/or new
- versions of the General Public License from time to time. Such
- new versions will be similar in spirit to the present version, but
- may differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
- Program specifies a version number of the license which applies to
- it and "any later version", you have the option of following the
- terms and conditions either of that version or of any later
- version published by the Free Software Foundation. If the Program
- does not specify a version number of the license, you may choose
- any version ever published by the Free Software Foundation.
-
- 9. If you wish to incorporate parts of the Program into other free
- programs whose distribution conditions are different, write to the
- author to ask for permission. For software which is copyrighted
- by the Free Software Foundation, write to the Free Software
- Foundation; we sometimes make exceptions for this. Our decision
- will be guided by the two goals of preserving the free status of
- all derivatives of our free software and of promoting the sharing
- and reuse of software generally.
-
- NO WARRANTY
-
- 10. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
- WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
- LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
- HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
- WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
- NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
- QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
- PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
- SERVICING, REPAIR OR CORRECTION.
-
- 11. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
- WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
- MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
- LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
- INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
- INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
- DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
- OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
- OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-Appendix: How to Apply These Terms to Your New Programs
-=======================================================
-
- If you develop a new program, and you want it to be of the greatest
-possible use to humanity, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these
-terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
- Copyright (C) 19YY NAME OF AUTHOR
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 1, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- Also add information on how to contact you by electronic and paper
-mail.
-
- If the program is interactive, make it output a short notice like
-this when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
- The hypothetical commands `show w' and `show c' should show the
-appropriate parts of the General Public License. Of course, the
-commands you use may be called something other than `show w' and `show
-c'; they could even be mouse-clicks or menu items--whatever suits your
-program.
-
- You should also get your employer (if you work as a programmer) or
-your school, if any, to sign a "copyright disclaimer" for the program,
-if necessary. Here a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- program `Gnomovision' (a program to direct compilers to make passes
- at assemblers) written by James Hacker.
-
- SIGNATURE OF TY COON, 1 April 1989
- Ty Coon, President of Vice
-
- That's all there is to it!
-
-
-File: gperf.info, Node: Contributors, Next: Motivation, Prev: Copying, Up: Top
-
-Contributors to GNU `gperf' Utility
-***********************************
-
- * The GNU `gperf' perfect hash function generator utility was
- originally written in GNU C++ by Douglas C. Schmidt. It is now
- also available in a highly-portable "old-style" C version. The
- general idea for the perfect hash function generator was inspired
- by Keith Bostic's algorithm written in C, and distributed to
- net.sources around 1984. The current program is a heavily
- modified, enhanced, and extended implementation of Keith's basic
- idea, created at the University of California, Irvine. Bugs,
- patches, and suggestions should be reported to schmidt at
- ics.uci.edu.
-
- * Special thanks is extended to Michael Tiemann and Doug Lea, for
- providing a useful compiler, and for giving me a forum to exhibit
- my creation.
-
- In addition, Adam de Boor and Nels Olson provided many tips and
- insights that greatly helped improve the quality and functionality
- of `gperf'.
-
-
-File: gperf.info, Node: Motivation, Next: Search Structures, Prev: Contributors, Up: Top
-
-Introduction
-************
-
- `gperf' is a perfect hash function generator written in C++. It
-transforms an *n* element user-specified keyword set *W* into a perfect
-hash function *F*. *F* uniquely maps keywords in *W* onto the range
-0..*k*, where *k* >= *n*. If *k = n* then *F* is a *minimal* perfect
-hash function. `gperf' generates a 0..*k* element static lookup table
-and a pair of C functions. These functions determine whether a given
-character string *s* occurs in *W*, using at most one probe into the
-lookup table.
-
- `gperf' currently generates the reserved keyword recognizer for
-lexical analyzers in several production and research compilers and
-language processing tools, including GNU C, GNU C++, GNU Pascal, GNU
-Modula 3, and GNU indent. Complete C++ source code for `gperf' is
-available via anonymous ftp from ics.uci.edu. `gperf' also is
-distributed along with the GNU libg++ library. A highly portable,
-functionally equivalent K&R C version of `gperf' is archived in
-comp.sources.unix, volume 20. Finally, a paper describing `gperf''s
-design and implementation in greater detail is available in the Second
-USENIX C++ Conference proceedings.
-
-
-File: gperf.info, Node: Search Structures, Next: Description, Prev: Motivation, Up: Top
-
-Static search structures and GNU `gperf'
-****************************************
-
- A "static search structure" is an Abstract Data Type with certain
-fundamental operations, *e.g.*, *initialize*, *insert*, and *retrieve*.
-Conceptually, all insertions occur before any retrievals. In
-practice, `gperf' generates a `static' array containing search set
-keywords and any associated attributes specified by the user. Thus,
-there is essentially no execution-time cost for the insertions. It is
-a useful data structure for representing *static search sets*. Static
-search sets occur frequently in software system applications. Typical
-static search sets include compiler reserved words, assembler
-instruction opcodes, and built-in shell interpreter commands. Search
-set members, called "keywords", are inserted into the structure only
-once, usually during program initialization, and are not generally
-modified at run-time.
-
- Numerous static search structure implementations exist, *e.g.*,
-arrays, linked lists, binary search trees, digital search tries, and
-hash tables. Different approaches offer trade-offs between space
-utilization and search time efficiency. For example, an *n* element
-sorted array is space efficient, though the average-case time
-complexity for retrieval operations using binary search is proportional
-to log *n*. Conversely, hash table implementations often locate a
-table entry in constant time, but typically impose additional memory
-overhead and exhibit poor worst case performance.
-
- *Minimal perfect hash functions* provide an optimal solution for a
-particular class of static search sets. A minimal perfect hash
-function is defined by two properties:
-
- * It allows keyword recognition in a static search set using at most
- *one* probe into the hash table. This represents the "perfect"
- property.
-
- * The actual memory allocated to store the keywords is precisely
- large enough for the keyword set, and *no larger*. This is the
- "minimal" property.
-
- For most applications it is far easier to generate *perfect* hash
-functions than *minimal perfect* hash functions. Moreover, non-minimal
-perfect hash functions frequently execute faster than minimal ones in
-practice. This phenomena occurs since searching a sparse keyword table
-increases the probability of locating a "null" entry, thereby reducing
-string comparisons. `gperf''s default behavior generates
-*near-minimal* perfect hash functions for keyword sets. However,
-`gperf' provides many options that permit user control over the degree
-of minimality and perfection.
-
- Static search sets often exhibit relative stability over time. For
-example, Ada's 63 reserved words have remained constant for nearly a
-decade. It is therefore frequently worthwhile to expend concerted
-effort building an optimal search structure *once*, if it subsequently
-receives heavy use multiple times. `gperf' removes the drudgery
-associated with constructing time- and space-efficient search
-structures by hand. It has proven a useful and practical tool for
-serious programming projects. Output from `gperf' is currently used in
-several production and research compilers, including GNU C, GNU C++,
-GNU Pascal, and GNU Modula 3. The latter two compilers are not yet
-part of the official GNU distribution. Each compiler utilizes `gperf'
-to automatically generate static search structures that efficiently
-identify their respective reserved keywords.
-
-
-File: gperf.info, Node: Description, Next: Options, Prev: Search Structures, Up: Top
-
-High-Level Description of GNU `gperf'
-*************************************
-
-* Menu:
-
-* Input Format:: Input Format to `gperf'
-* Output Format:: Output Format for Generated C Code with `gperf'
-
- The perfect hash function generator `gperf' reads a set of
-"keywords" from a "keyfile" (or from the standard input by default).
-It attempts to derive a perfect hashing function that recognizes a
-member of the "static keyword set" with at most a single probe into the
-lookup table. If `gperf' succeeds in generating such a function it
-produces a pair of C source code routines that perform hashing and
-table lookup recognition. All generated C code is directed to the
-standard output. Command-line options described below allow you to
-modify the input and output format to `gperf'.
-
- By default, `gperf' attempts to produce time-efficient code, with
-less emphasis on efficient space utilization. However, several options
-exist that permit trading-off execution time for storage space and vice
-versa. In particular, expanding the generated table size produces a
-sparse search structure, generally yielding faster searches.
-Conversely, you can direct `gperf' to utilize a C `switch' statement
-scheme that minimizes data space storage size. Furthermore, using a C
-`switch' may actually speed up the keyword retrieval time somewhat.
-Actual results depend on your C compiler, of course.
-
- In general, `gperf' assigns values to the characters it is using for
-hashing until some set of values gives each keyword a unique value. A
-helpful heuristic is that the larger the hash value range, the easier
-it is for `gperf' to find and generate a perfect hash function.
-Experimentation is the key to getting the most from `gperf'.
-
-
-File: gperf.info, Node: Input Format, Next: Output Format, Prev: Description, Up: Description
-
-Input Format to `gperf'
-=======================
-
- You can control the input keyfile format by varying certain
-command-line arguments, in particular the `-t' option. The input's
-appearance is similar to GNU utilities `flex' and `bison' (or UNIX
-utilities `lex' and `yacc'). Here's an outline of the general format:
-
- declarations
- %%
- keywords
- %%
- functions
-
- *Unlike* `flex' or `bison', all sections of `gperf''s input are
-optional. The following sections describe the input format for each
-section.
-
-* Menu:
-
-* Declarations:: `struct' Declarations and C Code Inclusion.
-* Keywords:: Format for Keyword Entries.
-* Functions:: Including Additional C Functions.
-
-
-File: gperf.info, Node: Declarations, Next: Keywords, Prev: Input Format, Up: Input Format
-
-`struct' Declarations and C Code Inclusion
-------------------------------------------
-
- The keyword input file optionally contains a section for including
-arbitrary C declarations and definitions, as well as provisions for
-providing a user-supplied `struct'. If the `-t' option *is* enabled,
-you *must* provide a C `struct' as the last component in the
-declaration section from the keyfile file. The first field in this
-struct must be a `char *' identifier called "name," although it is
-possible to modify this field's name with the `-K' option described
-below.
-
- Here is simple example, using months of the year and their
-attributes as input:
-
- struct months { char *name; int number; int days; int leap_days; };
- %%
- january, 1, 31, 31
- february, 2, 28, 29
- march, 3, 31, 31
- april, 4, 30, 30
- may, 5, 31, 31
- june, 6, 30, 30
- july, 7, 31, 31
- august, 8, 31, 31
- september, 9, 30, 30
- october, 10, 31, 31
- november, 11, 30, 30
- december, 12, 31, 31
-
- Separating the `struct' declaration from the list of key words and
-other fields are a pair of consecutive percent signs, `%%', appearing
-left justified in the first column, as in the UNIX utility `lex'.
-
- Using a syntax similar to GNU utilities `flex' and `bison', it is
-possible to directly include C source text and comments verbatim into
-the generated output file. This is accomplished by enclosing the region
-inside left-justified surrounding `%{', `%}' pairs. Here is an input
-fragment based on the previous example that illustrates this feature:
-
- %{
- #include <assert.h>
- /* This section of code is inserted directly into the output. */
- int return_month_days (struct months *months, int is_leap_year);
- %}
- struct months { char *name; int number; int days; int leap_days; };
- %%
- january, 1, 31, 31
- february, 2, 28, 29
- march, 3, 31, 31
- ...
-
- It is possible to omit the declaration section entirely. In this
-case the keyfile begins directly with the first keyword line, *e.g.*:
-
- january, 1, 31, 31
- february, 2, 28, 29
- march, 3, 31, 31
- april, 4, 30, 30
- ...
-
-
-File: gperf.info, Node: Keywords, Next: Functions, Prev: Declarations, Up: Input Format
-
-Format for Keyword Entries
---------------------------
-
- The second keyfile format section contains lines of keywords and any
-associated attributes you might supply. A line beginning with `#' in
-the first column is considered a comment. Everything following the `#'
-is ignored, up to and including the following newline.
-
- The first field of each non-comment line is always the key itself.
-It should be given as a simple name, *i.e.*, without surrounding string
-quotation marks, and be left-justified flush against the first column.
-In this context, a "field" is considered to extend up to, but not
-include, the first blank, comma, or newline. Here is a simple example
-taken from a partial list of C reserved words:
-
- # These are a few C reserved words, see the c.`gperf' file
- # for a complete list of ANSI C reserved words.
- unsigned
- sizeof
- switch
- signed
- if
- default
- for
- while
- return
-
- Note that unlike `flex' or `bison' the first `%%' marker may be
-elided if the declaration section is empty.
-
- Additional fields may optionally follow the leading keyword. Fields
-should be separated by commas, and terminate at the end of line. What
-these fields mean is entirely up to you; they are used to initialize the
-elements of the user-defined `struct' provided by you in the
-declaration section. If the `-t' option is *not* enabled these fields
-are simply ignored. All previous examples except the last one contain
-keyword attributes.
-
-
-File: gperf.info, Node: Functions, Prev: Keywords, Up: Input Format
-
-Including Additional C Functions
---------------------------------
-
- The optional third section also corresponds closely with conventions
-found in `flex' and `bison'. All text in this section, starting at the
-final `%%' and extending to the end of the input file, is included
-verbatim into the generated output file. Naturally, it is your
-responsibility to ensure that the code contained in this section is
-valid C.
-
-
-File: gperf.info, Node: Output Format, Prev: Input Format, Up: Description
-
-Output Format for Generated C Code with `gperf'
-===============================================
-
- Several options control how the generated C code appears on the
-standard output. Two C function are generated. They are called `hash'
-and `in_word_set', although you may modify the name for `in_word_set'
-with a command-line option. Both functions require two arguments, a
-string, `char *' STR, and a length parameter, `int' LEN. Their default
-function prototypes are as follows:
-
- static int hash (char *str, int len);
- int in_word_set (char *str, int len);
-
- By default, the generated `hash' function returns an integer value
-created by adding LEN to several user-specified STR key positions
-indexed into an "associated values" table stored in a local static
-array. The associated values table is constructed internally by
-`gperf' and later output as a static local C array called HASH_TABLE;
-its meaning and properties are described below. *Note
-Implementation::. The relevant key positions are specified via the `-k'
-option when running `gperf', as detailed in the *Options* section
-below. *Note Options::.
-
- Two options, `-g' (assume you are compiling with GNU C and its
-`inline' feature) and `-a' (assume ANSI C-style function prototypes),
-alter the content of both the generated `hash' and `in_word_set'
-routines. However, function `in_word_set' may be modified more
-extensively, in response to your option settings. The options that
-affect the `in_word_set' structure are:
-
- `-p'
- Have function `in_word_set' return a pointer rather than a
- boolean.
-
- `-t'
- Make use of the user-defined `struct'.
-
- `-S TOTAL SWITCH STATEMENTS'
- Generate 1 or more C `switch' statement rather than use a
- large, (and potentially sparse) static array. Although the
- exact time and space savings of this approach vary according
- to your C compiler's degree of optimization, this method
- often results in smaller and faster code.
-
- If the `-t', `-S', and `-p' options are omitted the default action
-is to generate a `char *' array containing the keys, together with
-additional null strings used for padding the array. By experimenting
-with the various input and output options, and timing the resulting C
-code, you can determine the best option choices for different keyword
-set characteristics.
-
-
-File: gperf.info, Node: Options, Next: Bugs, Prev: Description, Up: Top
-
-Options to the `gperf' Utility
-******************************
-
- There are *many* options to `gperf'. They were added to make the
-program more convenient for use with real applications. "On-line" help
-is readily available via the `-h' option. Other options include:
-
- `-a'
- Generate ANSI Standard C code using function prototypes. The
- default is to use "classic" K&R C function declaration syntax.
-
- `-c'
- Generates C code that uses the `strncmp' function to perform
- string comparisons. The default action is to use `strcmp'.
-
- `-C'
- Makes the contents of all generated lookup tables constant,
- *i.e.*, "readonly." Many compilers can generate more
- efficient code for this by putting the tables in readonly
- memory.
-
- `-d'
- Enables the debugging option. This produces verbose
- diagnostics to "standard error" when `gperf' is executing.
- It is useful both for maintaining the program and for
- determining whether a given set of options is actually
- speeding up the search for a solution. Some useful
- information is dumped at the end of the program when the `-d'
- option is enabled.
-
- `-D'
- Handle keywords whose key position sets hash to duplicate
- values. Duplicate hash values occur for two reasons:
-
- * Since `gperf' does not backtrack it is possible for it
- to process all your input keywords without finding a
- unique mapping for each word. However, frequently only
- a very small number of duplicates occur, and the
- majority of keys still require one probe into the table.
-
- * Sometimes a set of keys may have the same names, but
- possess different attributes. With the -D option
- `gperf' treats all these keys as part of an equivalence
- class and generates a perfect hash function with multiple
- comparisons for duplicate keys. It is up to you to
- completely disambiguate the keywords by modifying the
- generated C code. However, `gperf' helps you out by
- organizing the output.
-
- Option `-D' is extremely useful for certain large or highly
- redundant keyword sets, *i.e.*, assembler instruction opcodes.
- Using this option usually means that the generated hash
- function is no longer perfect. On the other hand, it permits
- `gperf' to work on keyword sets that it otherwise could not
- handle.
-
- `-e KEYWORD DELIMITER LIST'
- Allows the user to provide a string containing delimiters
- used to separate keywords from their attributes. The default
- is ",\n". This option is essential if you want to use
- keywords that have embedded commas or newlines. One useful
- trick is to use -e'TAB', where TAB is the literal tab
- character.
-
- `-E'
- Define constant values using an enum local to the lookup
- function rather than with #defines. This also means that
- different lookup functions can reside in the same file.
- Thanks to James Clark (jjc at ai.mit.edu).
-
- `-f ITERATION AMOUNT'
- Generate the perfect hash function "fast." This decreases
- `gperf''s running time at the cost of minimizing generated
- table-size. The iteration amount represents the number of
- times to iterate when resolving a collision. `0' means
- `iterate by the number of keywords. This option is probably
- most useful when used in conjunction with options `-D' and/or
- `-S' for *large* keyword sets.
-
- `-g'
- Assume a GNU compiler, *e.g.*, `g++' or `gcc'. This makes
- all generated routines use the "inline" keyword to remove the
- cost of function calls. Note that `-g' does *not* imply
- `-a', since other non-ANSI C compilers may have provisions
- for a function `inline' feature.
-
- `-G'
- Generate the static table of keywords as a static global
- variable, rather than hiding it inside of the lookup function
- (which is the default behavior).
-
- `-h'
- Prints a short summary on the meaning of each program option.
- Aborts further program execution.
-
- `-H HASH FUNCTION NAME'
- Allows you to specify the name for the generated hash
- function. Default name is `hash.' This option permits the
- use of two hash tables in the same file.
-
- `-i INITIAL VALUE'
- Provides an initial VALUE for the associate values array.
- Default is 0. Increasing the initial value helps inflate the
- final table size, possibly leading to more time efficient
- keyword lookups. Note that this option is not particularly
- useful when `-S' is used. Also, `-i' is overriden when the
- `-r' option is used.
-
- `-j JUMP VALUE'
- Affects the "jump value," *i.e.*, how far to advance the
- associated character value upon collisions. JUMP VALUE is
- rounded up to an odd number, the default is 5. If the JUMP
- VALUE is 0 `gper f' jumps by random amounts.
-
- `-k KEYS'
- Allows selection of the character key positions used in the
- keywords' hash function. The allowable choices range between
- 1-126, inclusive. The positions are separated by commas,
- *e.g.*, `-k 9,4,13,14'; ranges may be used, *e.g.*, `-k 2-7';
- and positions may occur in any order. Furthermore, the
- meta-character '*' causes the generated hash function to
- consider *all* character positions in each key, whereas '$'
- instructs the hash function to use the "final character" of a
- key (this is the only way to use a character position greater
- than 126, incidentally).
-
- For instance, the option `-k 1,2,4,6-10,'$'' generates a hash
- function that considers positions 1,2,4,6,7,8,9,10, plus the
- last character in each key (which may differ for each key,
- obviously). Keys with length less than the indicated key
- positions work properly, since selected key positions
- exceeding the key length are simply not referenced in the
- hash function.
-
- `-K KEY NAME'
- By default, the program assumes the structure component
- identifier for the keyword is "name." This option allows an
- arbitrary choice of identifier for this component, although
- it still must occur as the first field in your supplied
- `struct'.
-
- `-l'
- Compare key lengths before trying a string comparison. This
- might cut down on the number of string comparisons made
- during the lookup, since keys with different lengths are
- never compared via `strcmp'. However, using `-l' might
- greatly increase the size of the generated C code if the
- lookup table range is large (which implies that the switch
- option `-S' is not enabled), since the length table contains
- as many elements as there are entries in the lookup table.
-
- `-L GENERATED LANGUAGE NAME'
- Instructs `gperf' to generate code in the language specified
- by the option's argument. Languages handled are currently
- C++ and C. The default is C.
-
- `-n'
- Instructs the generator not to include the length of a
- keyword when computing its hash value. This may save a few
- assembly instructions in the generated lookup table.
-
- `-N LOOKUP FUNCTION NAME'
- Allows you to specify the name for the generated lookup
- function. Default name is `in_word_set.' This option
- permits completely automatic generation of perfect hash
- functions, especially when multiple generated hash functions
- are used in the same application.
-
- `-o'
- Reorders the keywords by sorting the keywords so that
- frequently occuring key position set components appear first.
- A second reordering pass follows so that keys with "already
- determined values" are placed towards the front of the
- keylist. This may decrease the time required to generate a
- perfect hash function for many keyword sets, and also produce
- more minimal perfect hash functions. The reason for this is
- that the reordering helps prune the search time by handling
- inevitable collisions early in the search process. On the
- other hand, if the number of keywords is *very* large using
- `-o' may *increase* `gperf''s execution time, since
- collisions will begin earlier and continue throughout the
- remainder of keyword processing. See Cichelli's paper from
- the January 1980 Communications of the ACM for details.
-
- `-p'
- Changes the return value of the generated function
- `in_word_set' from boolean (*i.e.*, 0 or 1), to either type
- "pointer to user-defined struct," (if the `-t' option is
- enabled), or simply to `char *', if `-t' is not enabled.
- This option is most useful when the `-t' option (allowing
- user-defined structs) is used. For example, it is possible
- to automatically generate the GNU C reserved word lookup
- routine with the options `-p' and `-t'.
-
- `-r'
- Utilizes randomness to initialize the associated values
- table. This frequently generates solutions faster than using
- deterministic initialization (which starts all associated
- values at 0). Furthermore, using the randomization option
- generally increases the size of the table. If `gperf' has
- difficultly with a certain keyword set try using `-r' or `-D'.
-
- `-s SIZE-MULTIPLE'
- Affects the size of the generated hash table. The numeric
- argument for this option indicates "how many times larger or
- smaller" the maximum associated value range should be, in
- relationship to the number of keys. If the SIZE-MULTIPLE is
- negative the maximum associated value is calculated by
- *dividing* it into the total number of keys. For example, a
- value of 3 means "allow the maximum associated value to be
- about 3 times larger than the number of input keys."
-
- Conversely, a value of -3 means "allow the maximum associated
- value to be about 3 times smaller than the number of input
- keys." Negative values are useful for limiting the overall
- size of the generated hash table, though this usually
- increases the number of duplicate hash values.
-
- If `generate switch' option `-S' is *not* enabled, the maximum
- associated value influences the static array table size, and
- a larger table should decrease the time required for an
- unsuccessful search, at the expense of extra table space.
-
- The default value is 1, thus the default maximum associated
- value about the same size as the number of keys (for
- efficiency, the maximum associated value is always rounded up
- to a power of 2). The actual table size may vary somewhat,
- since this technique is essentially a heuristic. In
- particular, setting this value too high slows down `gperf''s
- runtime, since it must search through a much larger range of
- values. Judicious use of the `-f' option helps alleviate this
- overhead, however.
-
- `-S TOTAL SWITCH STATEMENTS'
- Causes the generated C code to use a `switch' statement
- scheme, rather than an array lookup table. This can lead to
- a reduction in both time and space requirements for some
- keyfiles. The argument to this option determines how many
- `switch' statements are generated. A value of 1 generates 1
- `switch' containing all the elements, a value of 2 generates
- 2 tables with 1/2 the elements in each `switch', etc. This
- is useful since many C compilers cannot correctly generate
- code for large `switch' statements. This option was inspired
- in part by Keith Bostic's original C program.
-
- `-t'
- Allows you to include a `struct' type declaration for
- generated code. Any text before a pair of consecutive %% is
- consider part of the type declaration. Key words and
- additional fields may follow this, one group of fields per
- line. A set of examples for generating perfect hash tables
- and functions for Ada, C, and G++, Pascal, and Modula 2 and 3
- reserved words are distributed with this release.
-
- `-T'
- Prevents the transfer of the type declaration to the output
- file. Use this option if the type is already defined
- elsewhere.
-
- `-v'
- Prints out the current version number.
-
- `-Z CLASS NAME'
- Allow user to specify name of generated C++ class. Default
- name is `Perfect_Hash'.
-
-
-File: gperf.info, Node: Bugs, Next: Projects, Prev: Options, Up: Top
-
-Known Bugs and Limitations with `gperf'
-***************************************
-
- The following are some limitations with the current release of
-`gperf':
-
- * The `gperf' utility is tuned to execute quickly, and works quickly
- for small to medium size data sets (around 1000 keywords). It is
- extremely useful for maintaining perfect hash functions for
- compiler keyword sets. Several recent enhancements now enable
- `gperf' to work efficiently on much larger keyword sets (over
- 15,000 keywords). When processing large keyword sets it helps
- greatly to have over 8 megs of RAM.
-
- However, since `gperf' does not backtrack no guaranteed solution
- occurs on every run. On the other hand, it is usually easy to
- obtain a solution by varying the option parameters. In
- particular, try the `-r' option, and also try changing the default
- arguments to the `-s' and `-j' options. To *guarantee* a
- solution, use the `-D' and `-S' options, although the final
- results are not likely to be a *perfect* hash function anymore!
- Finally, use the `-f' option if you want `gperf' to generate the
- perfect hash function *fast*, with less emphasis on making it
- minimal.
-
- * The size of the generate static keyword array can get *extremely*
- large if the input keyword file is large or if the keywords are
- quite similar. This tends to slow down the compilation of the
- generated C code, and *greatly* inflates the object code size. If
- this situation occurs, consider using the `-S' option to reduce
- data size, potentially increasing keyword recognition time a
- negligible amount. Since many C compilers cannot correctly
- generated code for large switch statements it is important to
- qualify the -S option with an appropriate numerical argument that
- controls the number of switch statements generated.
-
- * The maximum number of key positions selected for a given key has an
- arbitrary limit of 126. This restriction should be removed, and if
- anyone considers this a problem write me and let me know so I can
- remove the constraint.
-
- * The C++ source code only compiles correctly with GNU G++, version
- 1.36 (and hopefully later versions). Porting to AT&T cfront would
- be tedious, but possible (and desirable). There is also a K&R C
- version available now. This should compile without change on most
- BSD systems, but may require a bit of work to run on SYSV, since
- `gperf' uses ALLOCA in several places. Send mail to schmidt at
- ics.uci.edu for information.
-
-
-File: gperf.info, Node: Projects, Next: Implementation, Prev: Bugs, Up: Top
-
-Things Still Left to Do
-***********************
-
- It should be "relatively" easy to replace the current perfect hash
-function algorithm with a more exhaustive approach; the perfect hash
-module is essential independent from other program modules. Additional
-worthwhile improvements include:
-
- * Make the algorithm more robust. At present, the program halts
- with an error diagnostic if it can't find a direct solution and
- the `-D' option is not enabled. A more comprehensive, albeit
- computationally expensive, approach would employ backtracking or
- enable alternative options and retry. It's not clear how helpful
- this would be, in general, since most search sets are rather small
- in practice.
-
- * Another useful extension involves modifying the program to generate
- "minimal" perfect hash functions (under certain circumstances, the
- current version can be rather extravagant in the generated table
- size). Again, this is mostly of theoretical interest, since a
- sparse table often produces faster lookups, and use of the `-S'
- `switch' option can minimize the data size, at the expense of
- slightly longer lookups (note that the gcc compiler generally
- produces good code for `switch' statements, reducing the need for
- more complex schemes).
-
- * In addition to improving the algorithm, it would also be useful to
- generate a C++ class or Ada package as the code output, in
- addition to the current C routines.
-
-
-File: gperf.info, Node: Implementation, Next: Bibliography, Prev: Projects, Up: Top
-
-Implementation Details of GNU `gperf'
-*************************************
-
- A paper describing the high-level description of the data structures
-and algorithms used to implement `gperf' will soon be available. This
-paper is useful not only from a maintenance and enhancement perspective,
-but also because they demonstrate several clever and useful programming
-techniques, *e.g.*, `Iteration Number' boolean arrays, double hashing,
-a "safe" and efficient method for reading arbitrarily long input from a
-file, and a provably optimal algorithm for simultaneously determining
-both the minimum and maximum elements in a list.
-
-
-File: gperf.info, Node: Bibliography, Prev: Implementation, Up: Top
-
-Bibliography
-************
-
- [1] Chang, C.C.: A Scheme for Constructing Ordered Minimal Perfect
-Hashing Functions Information Sciences 39(1986), 187-195.
-
- [2] Cichelli, Richard J. Author's Response to "On Cichelli's Minimal
-Perfec t Hash Functions Method" Communications of the ACM, 23,
-12(December 1980), 729.
-
- [3] Cichelli, Richard J. Minimal Perfect Hash Functions Made Simple
-Communications of the ACM, 23, 1(January 1980), 17-19.
-
- [4] Cook, C. R. and Oldehoeft, R.R. A Letter Oriented Minimal
-Perfect Hashing Function SIGPLAN Notices, 17, 9(September 1982), 18-27.
-
- [5] Cormack, G. V. and Horspool, R. N. S. and Kaiserwerth, M.
-Practical Perfect Hashing Computer Journal, 28, 1(January 1985), 54-58.
-
- [6] Jaeschke, G. Reciprocal Hashing: A Method for Generating Minimal
-Perfect Hashing Functions Communications of the ACM, 24, 12(December
-1981), 829-833.
-
- [7] Jaeschke, G. and Osterburg, G. On Cichelli's Minimal Perfect
-Hash Functions Method Communications of the ACM, 23, 12(December 1980),
-728-729.
-
- [8] Sager, Thomas J. A Polynomial Time Generator for Minimal Perfect
-Hash Functions Communications of the ACM, 28, 5(December 1985), 523-532
-
- [9] Schmidt, Douglas C. GPERF: A Perfect Hash Function Generator
-Second USENIX C++ Conference Proceedings, April 1990.
-
- [10] Sebesta, R.W. and Taylor, M.A. Minimal Perfect Hash Functions
-for Reserved Word Lists SIGPLAN Notices, 20, 12(September 1985), 47-53.
-
- [11] Sprugnoli, R. Perfect Hashing Functions: A Single Probe
-Retrieving Method for Static Sets Communications of the ACM, 20
-11(November 1977), 841-850.
-
- [12] Stallman, Richard M. Using and Porting GNU CC Free Software
-Foundation, 1988.
-
- [13] Stroustrup, Bjarne The C++ Programming Language.
-Addison-Wesley, 1986.
-
- [14] Tiemann, Michael D. User's Guide to GNU C++ Free Software
-Foundation, 1989.
-
-
-
-Tag Table:
-Node: Top1218
-Node: Copying2456
-Node: Contributors15759
-Node: Motivation16859
-Node: Search Structures18126
-Node: Description21679
-Node: Input Format23499
-Node: Declarations24294
-Node: Keywords26601
-Node: Functions28192
-Node: Output Format28686
-Node: Options31156
-Node: Bugs44526
-Node: Projects47213
-Node: Implementation48790
-Node: Bibliography49509
-
-End Tag Table
diff --git a/apps/gperf/gperf.texi b/apps/gperf/gperf.texi
deleted file mode 100644
index 649d05f7ec6..00000000000
--- a/apps/gperf/gperf.texi
+++ /dev/null
@@ -1,1184 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-
-@settitle User's Guide to @code{gperf}
-@setfilename gperf.info
-
-@ifinfo
-@format
-START-INFO-DIR-ENTRY
-* Gperf: (gperf). Perfect Hash Function Generator.
-END-INFO-DIR-ENTRY
-@end format
-@end ifinfo
-
-@ifinfo
-This file documents the features of the GNU Perfect Hash Function Generator
-
-Copyright (C) 1989 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-@ignore
-Permission is granted to process this file through @TeX{} and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-section entitled ``GNU General Public License'' is included exactly as
-in the original, and provided that the entire resulting derived work is
-distributed under the terms of a permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that the section entitled ``GNU @code{gperf} General Public License'' an
-d
-this permission notice may be included in translations approved by the
-Free Software Foundation instead of in the original English.
-@end ifinfo
-
-@setchapternewpage odd
-
-@titlepage
-@center @titlefont{User's Guide}
-@sp 2
-@center @titlefont{for the}
-@sp 2
-@center @titlefont{GNU GPERF Utility}
-@sp 4
-@center Douglas C. Schmidt
-@sp 3
-@center last updated 1 November 1989
-@sp 1
-@center for version 2.0
-@page
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1989 Free Software Foundation, Inc.
-
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-section entitled ``GNU @code{gperf} General Public License'' is included exactl
-y as
-in the original, and provided that the entire resulting derived work is
-distributed under the terms of a permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that the section entitled ``GNU @code{gperf} General Public License'' ma
-y be
-included in a translation approved by the author instead of in the original
-English.
-@end titlepage
-
-@ifinfo
-@node Top, Copying, (dir), (dir)
-@ichapter Introduction
-
-This manual documents the GNU @code{gperf} perfect hash function generator
-utility, focusing on its features and how to use them, and how to report
-bugs.
-
-@end ifinfo
-@menu
-* Copying:: GNU @code{gperf} General Public License says
- how you can copy and share @code{gperf}.
-* Contributors:: People who have contributed to @code{gperf}.
-* Motivation:: Static search structures and GNU GPERF.
-* Search Structures:: Static search structures and GNU @code{gperf}
-* Description:: High-level discussion of how GPERF functions.
-* Options:: A description of options to the program.
-* Bugs:: Known bugs and limitations with GPERF.
-* Projects:: Things still left to do.
-* Implementation:: Implementation Details for GNU GPERF.
-* Bibliography:: Material Referenced in this Report.
-
- --- The Detailed Node Listing ---
-
-High-Level Description of GNU @code{gperf}
-
-* Input Format:: Input Format to @code{gperf}
-* Output Format:: Output Format for Generated C Code with @code{gperf}
-
-Input Format to @code{gperf}
-
-* Declarations:: @code{struct} Declarations and C Code Inclusion.
-* Keywords:: Format for Keyword Entries.
-* Functions:: Including Additional C Functions.
-@end menu
-
-@node Copying, Contributors, Top, Top
-@unnumbered GNU GENERAL PUBLIC LICENSE
-@center Version 1, February 1989
-
-@display
-Copyright @copyright{} 1989 Free Software Foundation, Inc.
-675 Mass Ave, Cambridge, MA 02139, USA
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-@end display
-
-@unnumberedsec Preamble
-
- The license agreements of most software companies try to keep users
-at the mercy of those companies. By contrast, our General Public
-License is intended to guarantee your freedom to share and change free
-software---to make sure the software is free for all its users. The
-General Public License applies to the Free Software Foundation's
-software and to any other program whose authors commit to using it.
-You can use it for your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Specifically, the General Public License is designed to make
-sure that you have the freedom to give away or sell copies of free
-software, that you receive source code or can get it if you want it,
-that you can change the software or use pieces of it in new free
-programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of a such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must tell them their rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
-@iftex
-@unnumberedsec TERMS AND CONDITIONS
-@end iftex
-@ifinfo
-@center TERMS AND CONDITIONS
-@end ifinfo
-
-@enumerate
-@item
-This License Agreement applies to any program or other work which
-contains a notice placed by the copyright holder saying it may be
-distributed under the terms of this General Public License. The
-``Program'', below, refers to any such program or work, and a ``work based
-on the Program'' means either the Program or any work containing the
-Program or a portion of it, either verbatim or with modifications. Each
-licensee is addressed as ``you''.
-
-@item
-You may copy and distribute verbatim copies of the Program's source
-code as you receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this
-General Public License and to the absence of any warranty; and give any
-other recipients of the Program a copy of this General Public License
-along with the Program. You may charge a fee for the physical act of
-transferring a copy.
-
-@item
-You may modify your copy or copies of the Program or any portion of
-it, and copy and distribute such modifications under the terms of Paragraph
-1 above, provided that you also do the following:
-
-@itemize @bullet
-@item
-cause the modified files to carry prominent notices stating that
-you changed the files and the date of any change; and
-
-@item
-cause the whole of any work that you distribute or publish, that
-in whole or in part contains the Program or any part thereof, either
-with or without modifications, to be licensed at no charge to all
-third parties under the terms of this General Public License (except
-that you may choose to grant warranty protection to some or all
-third parties, at your option).
-
-@item
-If the modified program normally reads commands interactively when
-run, you must cause it, when started running for such interactive use
-in the simplest and most usual way, to print or display an
-announcement including an appropriate copyright notice and a notice
-that there is no warranty (or else, saying that you provide a
-warranty) and that users may redistribute the program under these
-conditions, and telling the user how to view a copy of this General
-Public License.
-
-@item
-You may charge a fee for the physical act of transferring a
-copy, and you may at your option offer warranty protection in
-exchange for a fee.
-@end itemize
-
-Mere aggregation of another independent work with the Program (or its
-derivative) on a volume of a storage or distribution medium does not bring
-the other work under the scope of these terms.
-
-@item
-You may copy and distribute the Program (or a portion or derivative of
-it, under Paragraph 2) in object code or executable form under the terms of
-Paragraphs 1 and 2 above provided that you also do one of the following:
-
-@itemize @bullet
-@item
-accompany it with the complete corresponding machine-readable
-source code, which must be distributed under the terms of
-Paragraphs 1 and 2 above; or,
-
-@item
-accompany it with a written offer, valid for at least three
-years, to give any third party free (except for a nominal charge
-for the cost of distribution) a complete machine-readable copy of the
-corresponding source code, to be distributed under the terms of
-Paragraphs 1 and 2 above; or,
-
-@item
-accompany it with the information you received as to where the
-corresponding source code may be obtained. (This alternative is
-allowed only for noncommercial distribution and only if you
-received the program in object code or executable form alone.)
-@end itemize
-
-Source code for a work means the preferred form of the work for making
-modifications to it. For an executable file, complete source code means
-all the source code for all modules it contains; but, as a special
-exception, it need not include source code for modules which are standard
-libraries that accompany the operating system on which the executable
-file runs, or for standard header files or definitions files that
-accompany that operating system.
-
-@item
-You may not copy, modify, sublicense, distribute or transfer the
-Program except as expressly provided under this General Public License.
-Any attempt otherwise to copy, modify, sublicense, distribute or transfer
-the Program is void, and will automatically terminate your rights to use
-the Program under this License. However, parties who have received
-copies, or rights to use copies, from you under this General Public
-License will not have their licenses terminated so long as such parties
-remain in full compliance.
-
-@item
-By copying, distributing or modifying the Program (or any work based
-on the Program) you indicate your acceptance of this license to do so,
-and all its terms and conditions.
-
-@item
-Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the original
-licensor to copy, distribute or modify the Program subject to these
-terms and conditions. You may not impose any further restrictions on the
-recipients' exercise of the rights granted herein.
-
-@item
-The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of the license which applies to it and ``any
-later version'', you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-the license, you may choose any version ever published by the Free Software
-Foundation.
-
-@item
-If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-@iftex
-@heading NO WARRANTY
-@end iftex
-@ifinfo
-@center NO WARRANTY
-@end ifinfo
-
-@item
-BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-@item
-IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
-ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT
-LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES
-SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE
-WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-@end enumerate
-
-@iftex
-@heading END OF TERMS AND CONDITIONS
-@end iftex
-@ifinfo
-@center END OF TERMS AND CONDITIONS
-@end ifinfo
-
-@page
-@unnumberedsec Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to humanity, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these
-terms.
-
- To do so, attach the following notices to the program. It is safest to
-attach them to the start of each source file to most effectively convey
-the exclusion of warranty; and each file should have at least the
-``copyright'' line and a pointer to where the full notice is found.
-
-@smallexample
-@var{one line to give the program's name and a brief idea of what it does.}
-Copyright (C) 19@var{yy} @var{name of author}
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-@end smallexample
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-@smallexample
-Gnomovision version 69, Copyright (C) 19@var{yy} @var{name of author}
-Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-This is free software, and you are welcome to redistribute it
-under certain conditions; type `show c' for details.
-@end smallexample
-
-The hypothetical commands `show w' and `show c' should show the
-appropriate parts of the General Public License. Of course, the
-commands you use may be called something other than `show w' and `show
-c'; they could even be mouse-clicks or menu items---whatever suits your
-program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a ``copyright disclaimer'' for the program, if
-necessary. Here a sample; alter the names:
-
-@example
-Yoyodyne, Inc., hereby disclaims all copyright interest in the
-program `Gnomovision' (a program to direct compilers to make passes
-at assemblers) written by James Hacker.
-
-@var{signature of Ty Coon}, 1 April 1989
-Ty Coon, President of Vice
-@end example
-
-That's all there is to it!
-
-@node Contributors, Motivation, Copying, Top
-@unnumbered Contributors to GNU @code{gperf} Utility
-
-@itemize @bullet
-@item
-The GNU @code{gperf} perfect hash function generator utility was
-originally written in GNU C++ by Douglas C. Schmidt. It is now also
-available in a highly-portable ``old-style'' C version. The general
-idea for the perfect hash function generator was inspired by Keith
-Bostic's algorithm written in C, and distributed to net.sources around
-1984. The current program is a heavily modified, enhanced, and extended
-implementation of Keith's basic idea, created at the University of
-California, Irvine. Bugs, patches, and suggestions should be reported
-to schmidt at ics.uci.edu.
-
-@item
-Special thanks is extended to Michael Tiemann and Doug Lea, for
-providing a useful compiler, and for giving me a forum to exhibit my
-creation.
-
-In addition, Adam de Boor and Nels Olson provided many tips and insights
-that greatly helped improve the quality and functionality of @code{gperf}.
-@end itemize
-
-@node Motivation, Search Structures, Contributors, Top
-@chapter Introduction
-
-@code{gperf} is a perfect hash function generator written in C++. It
-transforms an @emph{n} element user-specified keyword set @emph{W} into
-a perfect hash function @emph{F}. @emph{F} uniquely maps keywords in
-@emph{W} onto the range 0..@emph{k}, where @emph{k} >= @emph{n}. If
-@emph{k = n} then @emph{F} is a @emph{minimal} perfect hash function.
-@code{gperf} generates a 0..@emph{k} element static lookup table and a
-pair of C functions. These functions determine whether a given
-character string @emph{s} occurs in @emph{W}, using at most one probe
-into the lookup table.
-
-@code{gperf} currently generates the reserved keyword recognizer for
-lexical analyzers in several production and research compilers and
-language processing tools, including GNU C, GNU C++, GNU Pascal, GNU
-Modula 3, and GNU indent. Complete C++ source code for @code{gperf} is
-available via anonymous ftp from ics.uci.edu. @code{gperf} also is
-distributed along with the GNU libg++ library. A highly portable,
-functionally equivalent K&R C version of @code{gperf} is archived in
-comp.sources.unix, volume 20. Finally, a paper describing
-@code{gperf}'s design and implementation in greater detail is available
-in the Second USENIX C++ Conference proceedings.
-
-@node Search Structures, Description, Motivation, Top
-@chapter Static search structures and GNU @code{gperf}
-
-A @dfn{static search structure} is an Abstract Data Type with certain
-fundamental operations, @emph{e.g.}, @emph{initialize}, @emph{insert},
-and @emph{retrieve}. Conceptually, all insertions occur before any
-retrievals. In practice, @code{gperf} generates a @code{static} array
-containing search set keywords and any associated attributes specified
-by the user. Thus, there is essentially no execution-time cost for the
-insertions. It is a useful data structure for representing @emph{static
-search sets}. Static search sets occur frequently in software system
-applications. Typical static search sets include compiler reserved
-words, assembler instruction opcodes, and built-in shell interpreter
-commands. Search set members, called @dfn{keywords}, are inserted into
-the structure only once, usually during program initialization, and are
-not generally modified at run-time.
-
-Numerous static search structure implementations exist, @emph{e.g.},
-arrays, linked lists, binary search trees, digital search tries, and
-hash tables. Different approaches offer trade-offs between space
-utilization and search time efficiency. For example, an @emph{n} element
-sorted array is space efficient, though the average-case time
-complexity for retrieval operations using binary search is
-proportional to log @emph{n}. Conversely, hash table implementations
-often locate a table entry in constant time, but typically impose
-additional memory overhead and exhibit poor worst case performance.
-
-
-@emph{Minimal perfect hash functions} provide an optimal solution for a
-particular class of static search sets. A minimal perfect hash
-function is defined by two properties:
-
-@itemize @bullet
-@item
-It allows keyword recognition in a static search set using at most
-@emph{one} probe into the hash table. This represents the ``perfect''
-property.
-@item
-The actual memory allocated to store the keywords is precisely large
-enough for the keyword set, and @emph{no larger}. This is the
-``minimal'' property.
-@end itemize
-
-For most applications it is far easier to generate @emph{perfect} hash
-functions than @emph{minimal perfect} hash functions. Moreover,
-non-minimal perfect hash functions frequently execute faster than
-minimal ones in practice. This phenomena occurs since searching a
-sparse keyword table increases the probability of locating a ``null''
-entry, thereby reducing string comparisons. @code{gperf}'s default
-behavior generates @emph{near-minimal} perfect hash functions for
-keyword sets. However, @code{gperf} provides many options that permit
-user control over the degree of minimality and perfection.
-
-Static search sets often exhibit relative stability over time. For
-example, Ada's 63 reserved words have remained constant for nearly a
-decade. It is therefore frequently worthwhile to expend concerted
-effort building an optimal search structure @emph{once}, if it
-subsequently receives heavy use multiple times. @code{gperf} removes
-the drudgery associated with constructing time- and space-efficient
-search structures by hand. It has proven a useful and practical tool
-for serious programming projects. Output from @code{gperf} is currently
-used in several production and research compilers, including GNU C, GNU
-C++, GNU Pascal, and GNU Modula 3. The latter two compilers are not yet
-part of the official GNU distribution. Each compiler utilizes
-@code{gperf} to automatically generate static search structures that
-efficiently identify their respective reserved keywords.
-
-@node Description, Options, Search Structures, Top
-@chapter High-Level Description of GNU @code{gperf}
-
-@menu
-* Input Format:: Input Format to @code{gperf}
-* Output Format:: Output Format for Generated C Code with @code{gperf}
-@end menu
-
-The perfect hash function generator @code{gperf} reads a set of
-``keywords'' from a @dfn{keyfile} (or from the standard input by
-default). It attempts to derive a perfect hashing function that
-recognizes a member of the @dfn{static keyword set} with at most a
-single probe into the lookup table. If @code{gperf} succeeds in
-generating such a function it produces a pair of C source code routines
-that perform hashing and table lookup recognition. All generated C code
-is directed to the standard output. Command-line options described
-below allow you to modify the input and output format to @code{gperf}.
-
-By default, @code{gperf} attempts to produce time-efficient code, with
-less emphasis on efficient space utilization. However, several options
-exist that permit trading-off execution time for storage space and vice
-versa. In particular, expanding the generated table size produces a
-sparse search structure, generally yielding faster searches.
-Conversely, you can direct @code{gperf} to utilize a C @code{switch}
-statement scheme that minimizes data space storage size. Furthermore,
-using a C @code{switch} may actually speed up the keyword retrieval time
-somewhat. Actual results depend on your C compiler, of course.
-
-In general, @code{gperf} assigns values to the characters it is using
-for hashing until some set of values gives each keyword a unique value.
-A helpful heuristic is that the larger the hash value range, the easier
-it is for @code{gperf} to find and generate a perfect hash function.
-Experimentation is the key to getting the most from @code{gperf}.
-
-@node Input Format, Output Format, Description, Description
-@section Input Format to @code{gperf}
-
-You can control the input keyfile format by varying certain command-line
-arguments, in particular the @samp{-t} option. The input's appearance
-is similar to GNU utilities @code{flex} and @code{bison} (or UNIX
-utilities @code{lex} and @code{yacc}). Here's an outline of the general
-format:
-
-@example
-@group
-declarations
-%%
-keywords
-%%
-functions
-@end group
-@end example
-
-@emph{Unlike} @code{flex} or @code{bison}, all sections of @code{gperf}'s input
-are optional. The following sections describe the input format for each
-section.
-
-@menu
-* Declarations:: @code{struct} Declarations and C Code Inclusion.
-* Keywords:: Format for Keyword Entries.
-* Functions:: Including Additional C Functions.
-@end menu
-
-@node Declarations, Keywords, Input Format, Input Format
-@subsection @code{struct} Declarations and C Code Inclusion
-
-The keyword input file optionally contains a section for including
-arbitrary C declarations and definitions, as well as provisions for
-providing a user-supplied @code{struct}. If the @samp{-t} option
-@emph{is} enabled, you @emph{must} provide a C @code{struct} as the last
-component in the declaration section from the keyfile file. The first
-field in this struct must be a @code{char *} identifier called ``name,''
-although it is possible to modify this field's name with the @samp{-K}
-option described below.
-
-Here is simple example, using months of the year and their attributes as
-input:
-
-@example
-@group
-struct months @{ char *name; int number; int days; int leap_days; @};
-%%
-january, 1, 31, 31
-february, 2, 28, 29
-march, 3, 31, 31
-april, 4, 30, 30
-may, 5, 31, 31
-june, 6, 30, 30
-july, 7, 31, 31
-august, 8, 31, 31
-september, 9, 30, 30
-october, 10, 31, 31
-november, 11, 30, 30
-december, 12, 31, 31
-@end group
-@end example
-
-Separating the @code{struct} declaration from the list of key words and
-other fields are a pair of consecutive percent signs, @code{%%},
-appearing left justified in the first column, as in the UNIX utility
-@code{lex}.
-
-Using a syntax similar to GNU utilities @code{flex} and @code{bison}, it
-is possible to directly include C source text and comments verbatim into
-the generated output file. This is accomplished by enclosing the region
-inside left-justified surrounding @code{%@{}, @code{%@}} pairs. Here is
-an input fragment based on the previous example that illustrates this
-feature:
-
-@example
-@group
-%@{
-#include <assert.h>
-/* This section of code is inserted directly into the output. */
-int return_month_days (struct months *months, int is_leap_year);
-%@}
-struct months @{ char *name; int number; int days; int leap_days; @};
-%%
-january, 1, 31, 31
-february, 2, 28, 29
-march, 3, 31, 31
-...
-@end group
-@end example
-
-It is possible to omit the declaration section entirely. In this case
-the keyfile begins directly with the first keyword line, @emph{e.g.}:
-
-@example
-@group
-january, 1, 31, 31
-february, 2, 28, 29
-march, 3, 31, 31
-april, 4, 30, 30
-...
-@end group
-@end example
-
-@node Keywords, Functions, Declarations, Input Format
-@subsection Format for Keyword Entries
-
-The second keyfile format section contains lines of keywords and any
-associated attributes you might supply. A line beginning with @samp{#}
-in the first column is considered a comment. Everything following the
-@samp{#} is ignored, up to and including the following newline.
-
-The first field of each non-comment line is always the key itself. It
-should be given as a simple name, @emph{i.e.}, without surrounding
-string quotation marks, and be left-justified flush against the first
-column. In this context, a ``field'' is considered to extend up to, but
-not include, the first blank, comma, or newline. Here is a simple
-example taken from a partial list of C reserved words:
-
-@example
-@group
-# These are a few C reserved words, see the c.@code{gperf} file
-# for a complete list of ANSI C reserved words.
-unsigned
-sizeof
-switch
-signed
-if
-default
-for
-while
-return
-@end group
-@end example
-
-Note that unlike @code{flex} or @code{bison} the first @code{%%} marker
-may be elided if the declaration section is empty.
-
-Additional fields may optionally follow the leading keyword. Fields
-should be separated by commas, and terminate at the end of line. What
-these fields mean is entirely up to you; they are used to initialize the
-elements of the user-defined @code{struct} provided by you in the
-declaration section. If the @samp{-t} option is @emph{not} enabled
-these fields are simply ignored. All previous examples except the last
-one contain keyword attributes.
-
-@node Functions, , Keywords, Input Format
-@subsection Including Additional C Functions
-
-The optional third section also corresponds closely with conventions
-found in @code{flex} and @code{bison}. All text in this section,
-starting at the final @code{%%} and extending to the end of the input
-file, is included verbatim into the generated output file. Naturally,
-it is your responsibility to ensure that the code contained in this
-section is valid C.
-
-@node Output Format, , Input Format, Description
-@section Output Format for Generated C Code with @code{gperf}
-
-Several options control how the generated C code appears on the standard
-output. Two C function are generated. They are called @code{hash} and
-@code{in_word_set}, although you may modify the name for
-@code{in_word_set} with a command-line option. Both functions require
-two arguments, a string, @code{char *} @var{str}, and a length
-parameter, @code{int} @var{len}. Their default function prototypes are
-as follows:
-
-@example
-@group
-static int hash (char *str, int len);
-int in_word_set (char *str, int len);
-@end group
-@end example
-
-By default, the generated @code{hash} function returns an integer value
-created by adding @var{len} to several user-specified @var{str} key
-positions indexed into an @dfn{associated values} table stored in a
-local static array. The associated values table is constructed
-internally by @code{gperf} and later output as a static local C array called
-@var{hash_table}; its meaning and properties are described below.
-@xref{Implementation}. The relevant key positions are specified via the
-@samp{-k} option when running @code{gperf}, as detailed in the @emph{Options}
-section below. @xref{Options}.
-
-Two options, @samp{-g} (assume you are compiling with GNU C and its
-@code{inline} feature) and @samp{-a} (assume ANSI C-style function
-prototypes), alter the content of both the generated @code{hash} and
-@code{in_word_set} routines. However, function @code{in_word_set} may
-be modified more extensively, in response to your option settings. The
-options that affect the @code{in_word_set} structure are:
-
-@itemize @bullet
-@table @samp
-@item -p
-Have function @code{in_word_set} return a pointer rather than a boolean.
-
-@item -t
-Make use of the user-defined @code{struct}.
-
-@item -S @var{total switch statements}
-Generate 1 or more C @code{switch} statement rather than use a large,
-(and potentially sparse) static array. Although the exact time and
-space savings of this approach vary according to your C compiler's
-degree of optimization, this method often results in smaller and faster
-code.
-@end table
-@end itemize
-
-If the @samp{-t}, @samp{-S}, and @samp{-p} options are omitted the
-default action is to generate a @code{char *} array containing the keys,
-together with additional null strings used for padding the array. By
-experimenting with the various input and output options, and timing the
-resulting C code, you can determine the best option choices for
-different keyword set characteristics.
-
-@node Options, Bugs, Description, Top
-@chapter Options to the @code{gperf} Utility
-
-There are @emph{many} options to @code{gperf}. They were added to make
-the program more convenient for use with real applications. ``On-line''
-help is readily available via the @samp{-h} option. Other options
-include:
-
-@itemize @bullet
-@table @samp
-@item -a
-Generate ANSI Standard C code using function prototypes. The default is
-to use ``classic'' K&R C function declaration syntax.
-
-@item -c
-Generates C code that uses the @code{strncmp} function to perform
-string comparisons. The default action is to use @code{strcmp}.
-
-@item -C
-Makes the contents of all generated lookup tables constant, @emph{i.e.},
-``readonly.'' Many compilers can generate more efficient code for this
-by putting the tables in readonly memory.
-
-@item -d
-Enables the debugging option. This produces verbose diagnostics to
-``standard error'' when @code{gperf} is executing. It is useful both for
-maintaining the program and for determining whether a given set of
-options is actually speeding up the search for a solution. Some useful
-information is dumped at the end of the program when the @samp{-d}
-option is enabled.
-
-@item -D
-Handle keywords whose key position sets hash to duplicate values.
-Duplicate hash values occur for two reasons:
-
-@itemize @bullet
-@item
-Since @code{gperf} does not backtrack it is possible for it to process
-all your input keywords without finding a unique mapping for each word.
-However, frequently only a very small number of duplicates occur, and
-the majority of keys still require one probe into the table.
-@item
-Sometimes a set of keys may have the same names, but possess different
-attributes. With the -D option @code{gperf} treats all these keys as part of
-an equivalence class and generates a perfect hash function with multiple
-comparisons for duplicate keys. It is up to you to completely
-disambiguate the keywords by modifying the generated C code. However,
-@code{gperf} helps you out by organizing the output.
-@end itemize
-
-Option @samp{-D} is extremely useful for certain large or highly
-redundant keyword sets, @emph{i.e.}, assembler instruction opcodes.
-Using this option usually means that the generated hash function is no
-longer perfect. On the other hand, it permits @code{gperf} to work on
-keyword sets that it otherwise could not handle.
-
-@item -e @var{keyword delimiter list}
-Allows the user to provide a string containing delimiters used to
-separate keywords from their attributes. The default is ",\n". This
-option is essential if you want to use keywords that have embedded
-commas or newlines. One useful trick is to use -e'TAB', where TAB is
-the literal tab character.
-
-@item -E
-Define constant values using an enum local to the lookup function rather
-than with #defines. This also means that different lookup functions can
-reside in the same file. Thanks to James Clark (jjc at ai.mit.edu).
-
-@item -f @var{iteration amount}
-Generate the perfect hash function ``fast.'' This decreases @code{gperf}'s
-running time at the cost of minimizing generated table-size. The
-iteration amount represents the number of times to iterate when
-resolving a collision. `0' means `iterate by the number of keywords.
-This option is probably most useful when used in conjunction with options
-@samp{-D} and/or @samp{-S} for @emph{large} keyword sets.
-
-@item -g
-Assume a GNU compiler, @emph{e.g.}, @code{g++} or @code{gcc}. This
-makes all generated routines use the ``inline'' keyword to remove the
-cost of function calls. Note that @samp{-g} does @emph{not} imply
-@samp{-a}, since other non-ANSI C compilers may have provisions for a
-function @code{inline} feature.
-
-@item -G
-Generate the static table of keywords as a static global variable,
-rather than hiding it inside of the lookup function (which is the
-default behavior).
-
-@item -h
-Prints a short summary on the meaning of each program option. Aborts
-further program execution.
-
-@item -H @var{hash function name}
-Allows you to specify the name for the generated hash function. Default
-name is `hash.' This option permits the use of two hash tables in the
-same file.
-
-@item -i @var{initial value}
-Provides an initial @var{value} for the associate values array. Default
-is 0. Increasing the initial value helps inflate the final table size,
-possibly leading to more time efficient keyword lookups. Note that this
-option is not particularly useful when @samp{-S} is used. Also,
-@samp{-i} is overriden when the @samp{-r} option is used.
-
-@item -j @var{jump value}
-Affects the ``jump value,'' @emph{i.e.}, how far to advance the
-associated character value upon collisions. @var{Jump value} is rounded
-up to an odd number, the default is 5. If the @var{jump value} is 0 @code{gper
-f}
-jumps by random amounts.
-
-@item -k @var{keys}
-Allows selection of the character key positions used in the keywords'
-hash function. The allowable choices range between 1-126, inclusive.
-The positions are separated by commas, @emph{e.g.}, @samp{-k 9,4,13,14};
-ranges may be used, @emph{e.g.}, @samp{-k 2-7}; and positions may occur
-in any order. Furthermore, the meta-character '*' causes the generated
-hash function to consider @strong{all} character positions in each key,
-whereas '$' instructs the hash function to use the ``final character''
-of a key (this is the only way to use a character position greater than
-126, incidentally).
-
-For instance, the option @samp{-k 1,2,4,6-10,'$'} generates a hash
-function that considers positions 1,2,4,6,7,8,9,10, plus the last
-character in each key (which may differ for each key, obviously). Keys
-with length less than the indicated key positions work properly, since
-selected key positions exceeding the key length are simply not
-referenced in the hash function.
-
-@item -K @var{key name}
-By default, the program assumes the structure component identifier for
-the keyword is ``name.'' This option allows an arbitrary choice of
-identifier for this component, although it still must occur as the first
-field in your supplied @code{struct}.
-
-@item -l
-Compare key lengths before trying a string comparison. This might cut
-down on the number of string comparisons made during the lookup, since
-keys with different lengths are never compared via @code{strcmp}.
-However, using @samp{-l} might greatly increase the size of the
-generated C code if the lookup table range is large (which implies that
-the switch option @samp{-S} is not enabled), since the length table
-contains as many elements as there are entries in the lookup table.
-
-@item -L @var{generated language name}
-Instructs @code{gperf} to generate code in the language specified by the
-option's argument. Languages handled are currently C++ and C. The
-default is C.
-
-@item -n
-Instructs the generator not to include the length of a keyword when
-computing its hash value. This may save a few assembly instructions in
-the generated lookup table.
-
-@item -N @var{lookup function name}
-Allows you to specify the name for the generated lookup function.
-Default name is `in_word_set.' This option permits completely automatic
-generation of perfect hash functions, especially when multiple generated
-hash functions are used in the same application.
-
-@item -o
-Reorders the keywords by sorting the keywords so that frequently
-occuring key position set components appear first. A second reordering
-pass follows so that keys with ``already determined values'' are placed
-towards the front of the keylist. This may decrease the time required
-to generate a perfect hash function for many keyword sets, and also
-produce more minimal perfect hash functions. The reason for this is
-that the reordering helps prune the search time by handling inevitable
-collisions early in the search process. On the other hand, if the
-number of keywords is @emph{very} large using @samp{-o} may
-@emph{increase} @code{gperf}'s execution time, since collisions will begin
-earlier and continue throughout the remainder of keyword processing.
-See Cichelli's paper from the January 1980 Communications of the ACM for
-details.
-
-@item -p
-Changes the return value of the generated function @code{in_word_set}
-from boolean (@emph{i.e.}, 0 or 1), to either type ``pointer to
-user-defined struct,'' (if the @samp{-t} option is enabled), or simply
-to @code{char *}, if @samp{-t} is not enabled. This option is most
-useful when the @samp{-t} option (allowing user-defined structs) is
-used. For example, it is possible to automatically generate the GNU C
-reserved word lookup routine with the options @samp{-p} and @samp{-t}.
-
-@item -r
-Utilizes randomness to initialize the associated values table. This
-frequently generates solutions faster than using deterministic
-initialization (which starts all associated values at 0). Furthermore,
-using the randomization option generally increases the size of the
-table. If @code{gperf} has difficultly with a certain keyword set try using
-@samp{-r} or @samp{-D}.
-
-@item -s @var{size-multiple}
-Affects the size of the generated hash table. The numeric argument for
-this option indicates ``how many times larger or smaller'' the maximum
-associated value range should be, in relationship to the number of keys.
-If the @var{size-multiple} is negative the maximum associated value is
-calculated by @emph{dividing} it into the total number of keys. For
-example, a value of 3 means ``allow the maximum associated value to be
-about 3 times larger than the number of input keys.''
-
-Conversely, a value of -3 means ``allow the maximum associated value to
-be about 3 times smaller than the number of input keys.'' Negative
-values are useful for limiting the overall size of the generated hash
-table, though this usually increases the number of duplicate hash
-values.
-
-If `generate switch' option @samp{-S} is @emph{not} enabled, the maximum
-associated value influences the static array table size, and a larger
-table should decrease the time required for an unsuccessful search, at
-the expense of extra table space.
-
-The default value is 1, thus the default maximum associated value about
-the same size as the number of keys (for efficiency, the maximum
-associated value is always rounded up to a power of 2). The actual
-table size may vary somewhat, since this technique is essentially a
-heuristic. In particular, setting this value too high slows down
-@code{gperf}'s runtime, since it must search through a much larger range
-of values. Judicious use of the @samp{-f} option helps alleviate this
-overhead, however.
-
-@item -S @var{total switch statements}
-Causes the generated C code to use a @code{switch} statement scheme,
-rather than an array lookup table. This can lead to a reduction in both
-time and space requirements for some keyfiles. The argument to this
-option determines how many @code{switch} statements are generated. A
-value of 1 generates 1 @code{switch} containing all the elements, a
-value of 2 generates 2 tables with 1/2 the elements in each
-@code{switch}, etc. This is useful since many C compilers cannot
-correctly generate code for large @code{switch} statements. This option
-was inspired in part by Keith Bostic's original C program.
-
-@item -t
-Allows you to include a @code{struct} type declaration for generated
-code. Any text before a pair of consecutive %% is consider part of the
-type declaration. Key words and additional fields may follow this, one
-group of fields per line. A set of examples for generating perfect hash
-tables and functions for Ada, C, and G++, Pascal, and Modula 2 and 3
-reserved words are distributed with this release.
-
-@item -T
-Prevents the transfer of the type declaration to the output file. Use
-this option if the type is already defined elsewhere.
-
-@item -v
-Prints out the current version number.
-
-@item -Z @var{class name}
-Allow user to specify name of generated C++ class. Default name is
-@code{Perfect_Hash}.
-@end table
-@end itemize
-
-@node Bugs, Projects, Options, Top
-@chapter Known Bugs and Limitations with @code{gperf}
-
-The following are some limitations with the current release of
-@code{gperf}:
-
-@itemize @bullet
-@item
-The @code{gperf} utility is tuned to execute quickly, and works quickly
-for small to medium size data sets (around 1000 keywords). It is
-extremely useful for maintaining perfect hash functions for compiler
-keyword sets. Several recent enhancements now enable @code{gperf} to
-work efficiently on much larger keyword sets (over 15,000 keywords).
-When processing large keyword sets it helps greatly to have over 8 megs
-of RAM.
-
-However, since @code{gperf} does not backtrack no guaranteed solution
-occurs on every run. On the other hand, it is usually easy to obtain a
-solution by varying the option parameters. In particular, try the
-@samp{-r} option, and also try changing the default arguments to the
-@samp{-s} and @samp{-j} options. To @emph{guarantee} a solution, use
-the @samp{-D} and @samp{-S} options, although the final results are not
-likely to be a @emph{perfect} hash function anymore! Finally, use the
-@samp{-f} option if you want @code{gperf} to generate the perfect hash
-function @emph{fast}, with less emphasis on making it minimal.
-
-@item
-The size of the generate static keyword array can get @emph{extremely}
-large if the input keyword file is large or if the keywords are quite
-similar. This tends to slow down the compilation of the generated C
-code, and @emph{greatly} inflates the object code size. If this
-situation occurs, consider using the @samp{-S} option to reduce data
-size, potentially increasing keyword recognition time a negligible
-amount. Since many C compilers cannot correctly generated code for
-large switch statements it is important to qualify the @var{-S} option
-with an appropriate numerical argument that controls the number of
-switch statements generated.
-
-@item
-The maximum number of key positions selected for a given key has an
-arbitrary limit of 126. This restriction should be removed, and if
-anyone considers this a problem write me and let me know so I can remove
-the constraint.
-
-@item
-The C++ source code only compiles correctly with GNU G++, version 1.36
-(and hopefully later versions). Porting to AT&T cfront would be
-tedious, but possible (and desirable). There is also a K&R C version
-available now. This should compile without change on most BSD systems,
-but may require a bit of work to run on SYSV, since @code{gperf} uses
-@var{alloca} in several places. Send mail to schmidt at ics.uci.edu for
-information.
-@end itemize
-
-@node Projects, Implementation, Bugs, Top
-@chapter Things Still Left to Do
-
-It should be ``relatively'' easy to replace the current perfect hash
-function algorithm with a more exhaustive approach; the perfect hash
-module is essential independent from other program modules. Additional
-worthwhile improvements include:
-
-@itemize @bullet
-@item
-Make the algorithm more robust. At present, the program halts with an
-error diagnostic if it can't find a direct solution and the @samp{-D}
-option is not enabled. A more comprehensive, albeit computationally
-expensive, approach would employ backtracking or enable alternative
-options and retry. It's not clear how helpful this would be, in
-general, since most search sets are rather small in practice.
-
-@item
-Another useful extension involves modifying the program to generate
-``minimal'' perfect hash functions (under certain circumstances, the
-current version can be rather extravagant in the generated table size).
-Again, this is mostly of theoretical interest, since a sparse table
-often produces faster lookups, and use of the @samp{-S} @code{switch}
-option can minimize the data size, at the expense of slightly longer
-lookups (note that the gcc compiler generally produces good code for
-@code{switch} statements, reducing the need for more complex schemes).
-
-@item
-In addition to improving the algorithm, it would also be useful to
-generate a C++ class or Ada package as the code output, in addition to
-the current C routines.
-@end itemize
-
-@node Implementation, Bibliography, Projects, Top
-@chapter Implementation Details of GNU @code{gperf}
-
-A paper describing the high-level description of the data structures and
-algorithms used to implement @code{gperf} will soon be available. This
-paper is useful not only from a maintenance and enhancement perspective,
-but also because they demonstrate several clever and useful programming
-techniques, @emph{e.g.}, `Iteration Number' boolean arrays, double
-hashing, a ``safe'' and efficient method for reading arbitrarily long
-input from a file, and a provably optimal algorithm for simultaneously
-determining both the minimum and maximum elements in a list.
-
-@page
-
-@node Bibliography, , Implementation, Top
-@chapter Bibliography
-
-[1] Chang, C.C.: @i{A Scheme for Constructing Ordered Minimal Perfect
-Hashing Functions} Information Sciences 39(1986), 187-195.
-
-[2] Cichelli, Richard J. @i{Author's Response to ``On Cichelli's Minimal Perfec
-t Hash
-Functions Method''} Communications of the ACM, 23, 12(December 1980), 729.
-
-[3] Cichelli, Richard J. @i{Minimal Perfect Hash Functions Made Simple}
-Communications of the ACM, 23, 1(January 1980), 17-19.
-
-[4] Cook, C. R. and Oldehoeft, R.R. @i{A Letter Oriented Minimal
-Perfect Hashing Function} SIGPLAN Notices, 17, 9(September 1982), 18-27.
-
-[5] Cormack, G. V. and Horspool, R. N. S. and Kaiserwerth, M.
-@i{Practical Perfect Hashing} Computer Journal, 28, 1(January 1985), 54-58.
-
-[6] Jaeschke, G. @i{Reciprocal Hashing: A Method for Generating Minimal
-Perfect Hashing Functions} Communications of the ACM, 24, 12(December
-1981), 829-833.
-
-[7] Jaeschke, G. and Osterburg, G. @i{On Cichelli's Minimal Perfect
-Hash Functions Method} Communications of the ACM, 23, 12(December 1980),
-728-729.
-
-[8] Sager, Thomas J. @i{A Polynomial Time Generator for Minimal Perfect
-Hash Functions} Communications of the ACM, 28, 5(December 1985), 523-532
-
-[9] Schmidt, Douglas C. @i{GPERF: A Perfect Hash Function Generator}
-Second USENIX C++ Conference Proceedings, April 1990.
-
-[10] Sebesta, R.W. and Taylor, M.A. @i{Minimal Perfect Hash Functions
-for Reserved Word Lists} SIGPLAN Notices, 20, 12(September 1985), 47-53.
-
-[11] Sprugnoli, R. @i{Perfect Hashing Functions: A Single Probe
-Retrieving Method for Static Sets} Communications of the ACM, 20
-11(November 1977), 841-850.
-
-[12] Stallman, Richard M. @i{Using and Porting GNU CC} Free Software Foundation,
-1988.
-
-[13] Stroustrup, Bjarne @i{The C++ Programming Language.} Addison-Wesley, 1986.
-
-[14] Tiemann, Michael D. @i{User's Guide to GNU C++} Free Software
-Foundation, 1989.
-
-@contents
-@bye
diff --git a/apps/gperf/src/Bool_Array.cpp b/apps/gperf/src/Bool_Array.cpp
deleted file mode 100644
index f308c08c24c..00000000000
--- a/apps/gperf/src/Bool_Array.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Fast lookup table abstraction implemented as an Iteration Number Array
-// $Id$
-
- Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
-
-GNU GPERF is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111, USA. */
-
-#include "Bool_Array.h"
-
-// Prints out debugging diagnostics.
-
-Bool_Array::~Bool_Array (void)
-{
- if (option[DEBUG])
- fprintf (stderr, "\ndumping boolean array information\n"
- "size = %d\niteration number = %d\nend of array dump\n",
- size, generation_number);
-}
-
-Bool_Array::Bool_Array (void)
- : storage_array (0),
- generation_number (0),
- size (0)
-{
-}
-
-void
-Bool_Array::init (STORAGE_TYPE *buffer, STORAGE_TYPE s)
-{
- size = s;
- generation_number = 1;
- storage_array = buffer;
-
- memset (storage_array, 0, s * sizeof *storage_array);
-
- if (option[DEBUG])
- fprintf (stderr, "\nbool array size = %d, total bytes = %d\n",
- size, size * sizeof *storage_array);
-}
-
-int
-Bool_Array::find (int index)
-{
- if (storage_array[index] == generation_number)
- return 1;
- else
- {
- storage_array[index] = generation_number;
- return 0;
- }
-}
-
-void
-Bool_Array::reset (void)
-{
- if (++generation_number == 0)
- {
- if (option[DEBUG])
- {
- fprintf (stderr, "(re-initializing bool_array)...");
- fflush (stderr);
- }
-
- generation_number = 1;
- memset (storage_array, 0, size * sizeof *storage_array);
-
- if (option[DEBUG])
- {
- fprintf (stderr, "done\n");
- fflush (stderr);
- }
- }
-}
-
diff --git a/apps/gperf/src/Bool_Array.h b/apps/gperf/src/Bool_Array.h
deleted file mode 100644
index d39b0e81cc4..00000000000
--- a/apps/gperf/src/Bool_Array.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.*/
-
-#if !defined (BOOL_ARRAY_H)
-#define BOOL_ARRAY_H
-
-#include "Options.h"
-
-#if defined (LO_CAL)
-// If we are on a memory diet then we'll only make these use a limited
-// amount of storage space.
-typedef u_short STORAGE_TYPE;
-#else
-typedef int STORAGE_TYPE;
-#endif /* LO_CAL */
-
-class Bool_Array
-{
- // = TITLE
- // Efficient lookup table abstraction implemented as an Generation
- // Number Array.
- //
- // = DESCRIPTION
- // Uses an Generation Numbering implementation to save on
- // initialization time.
-public:
- Bool_Array (void);
- ~Bool_Array (void);
-
- void init (STORAGE_TYPE *buffer, STORAGE_TYPE s);
- int find (int hash_value);
- void reset (void);
-
-private:
- STORAGE_TYPE *storage_array;
- // Initialization of the index space.
-
- STORAGE_TYPE generation_number;
- // Keep track of the current Generation.
-
- int size;
- // Keep track of array size.
-};
-
-#endif /* BOOL_ARRAY_H */
diff --git a/apps/gperf/src/Gen_Perf.cpp b/apps/gperf/src/Gen_Perf.cpp
deleted file mode 100644
index 346f357131b..00000000000
--- a/apps/gperf/src/Gen_Perf.cpp
+++ /dev/null
@@ -1,346 +0,0 @@
-// $Id$
-
-/* structures the code generation output.
- Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111,
-USA. */
-
-#include "Vectors.h"
-#include "Gen_Perf.h"
-
-// Current release version.
-extern char *version_string;
-
-// Reads input keys, possibly applies the reordering heuristic, sets
-// the maximum associated value size (rounded up to the nearest power
-// of 2), may initialize the associated values array, and determines
-// the maximum hash table size. Note: using the random numbers is
-// often helpful, though not as deterministic, of course!
-
-Gen_Perf::Gen_Perf (void)
-{
- int asso_value_max;
- int non_linked_length;
-
- this->key_list.read_keys ();
- if (option[ORDER])
- this->key_list.reorder ();
- asso_value_max = option.get_asso_max ();
- non_linked_length = this->key_list.keyword_list_length ();
- num_done = 1;
- fewest_collisions = 0;
- if (asso_value_max == 0)
- asso_value_max = non_linked_length;
- else if (asso_value_max > 0)
- asso_value_max *= non_linked_length;
- else // if (asso_value_max < 0)
- asso_value_max = non_linked_length / -asso_value_max;
- option.set_asso_max (ACE_POW (asso_value_max));
-
- if (option[RANDOM])
- {
- srand (time (0));
-
- for (int i = 0; i < ALPHA_SIZE; i++)
- Vectors::asso_values[i] = (rand () & asso_value_max - 1);
- }
- else
- {
- int asso_value = option.initial_value ();
-
- if (asso_value) // Initialize array if user requests non-zero default.
- for (int i = ALPHA_SIZE - 1; i >= 0; i--)
- Vectors::asso_values[i] = asso_value & option.get_asso_max () - 1;
- }
- max_hash_value = this->key_list.max_key_length () + option.get_asso_max () *
- option.get_max_keysig_size ();
-
- printf ("/* ");
- if (option[C])
- printf ("C");
- else if (option[CPLUSPLUS])
- printf ("C++");
- printf (" code produced by gperf version %s */\n", version_string);
- Options::print_options ();
-
- if (option[DEBUG])
- fprintf (stderr, "total non-linked keys = %d\nmaximum associated value is %d"
- "\nmaximum size of generated hash table is %d\n",
- non_linked_length, asso_value_max, max_hash_value);
-}
-
-// Merge two disjoint hash key multisets to form the ordered disjoint
-// union of the sets. (In a multiset, an element can occur multiple
-// times). Precondition: both set_1 and set_2 must be
-// ordered. Returns the length of the combined set.
-
-inline int
-Gen_Perf::compute_disjoint_union (char *set_1, char *set_2, char *set_3)
-{
- char *base = set_3;
-
- while (*set_1 && *set_2)
- if (*set_1 == *set_2)
- set_1++, set_2++;
- else
- {
- *set_3 = *set_1 < *set_2 ? *set_1++ : *set_2++;
- if (set_3 == base || *set_3 != *(set_3-1)) set_3++;
- }
-
- while (*set_1)
- {
- *set_3 = *set_1++;
- if (set_3 == base || *set_3 != *(set_3-1)) set_3++;
- }
-
- while (*set_2)
- {
- *set_3 = *set_2++;
- if (set_3 == base || *set_3 != *(set_3-1)) set_3++;
- }
- *set_3 = '\0';
- return set_3 - base;
-}
-
-// Sort the UNION_SET in increasing frequency of occurrence. This
-// speeds up later processing since we may assume the resulting set
-// (Set_3, in this case), is ordered. Uses insertion sort, since the
-// UNION_SET is typically short.
-
-inline void
-Gen_Perf::sort_set (char *union_set, int len)
-{
- int i, j;
-
- for (i = 0, j = len - 1; i < j; i++)
- {
- char curr, tmp;
-
- for (curr = i + 1, tmp = union_set[curr];
- curr > 0 && Vectors::occurrences[tmp] < Vectors::occurrences[union_set[curr-1]];
- curr--)
- union_set[curr] = union_set[curr - 1];
-
- union_set[curr] = tmp;
- }
-}
-
-// Generate a key set's hash value.
-
-inline int
-Gen_Perf::hash (List_Node *key_node)
-{
- int sum = option[NOLENGTH] ? 0 : key_node->length;
-
- for (char *ptr = key_node->char_set; *ptr; ptr++)
- sum += Vectors::asso_values[*ptr];
-
- return key_node->hash_value = sum;
-}
-
-// Find out how character value change affects successfully hash
-// items. Returns FALSE if no other hash values are affected, else
-// returns TRUE. Note that because Option.Get_Asso_Max is a power of
-// two we can guarantee that all legal Vectors::Asso_Values are
-// visited without repetition since Option.Get_Jump was forced to be
-// an odd value!
-
-inline int
-Gen_Perf::affects_prev (char c, List_Node *curr)
-{
- int original_char = Vectors::asso_values[c];
- int total_iterations = !option[FAST]
- ? option.get_asso_max () : option.get_iterations () ? option.get_iterations () : this->key_list.keyword_list_length ();
-
- // Try all legal associated values.
-
- for (int i = total_iterations - 1; i >= 0; i--)
- {
- int collisions = 0;
-
- Vectors::asso_values[c] = Vectors::asso_values[c] + (option.get_jump () ? option.get_jump () : rand ())
- & option.get_asso_max () - 1;
-
- // Iteration Number array is a win, O(1) intialization time!
- this->char_search.reset ();
-
- // See how this asso_value change affects previous keywords. If
- // it does better than before we'll take it!
-
- for (List_Node *ptr = this->key_list.head;
- !this->char_search.find (hash (ptr)) || ++collisions < fewest_collisions;
- ptr = ptr->next)
- if (ptr == curr)
- {
- fewest_collisions = collisions;
- if (option[DEBUG])
- fprintf (stderr, "- resolved after %d iterations", total_iterations - i);
- return 0;
- }
- }
-
- // Restore original values, no more tries.
- Vectors::asso_values[c] = original_char;
- // If we're this far it's time to try the next character....
- return 1;
-}
-
-// Change a character value, try least-used characters first.
-
-void
-Gen_Perf::change (List_Node *prior, List_Node *curr)
-{
- static char *union_set;
-
- if (!union_set)
- union_set = new char [2 * option.get_max_keysig_size () + 1];
-
- if (option[DEBUG])
- {
- fprintf (stderr, "collision on keyword #%d, prior = \"%s\", curr = \"%s\" hash = %d\n",
- num_done, prior->key, curr->key, curr->hash_value);
- fflush (stderr);
- }
- sort_set (union_set, compute_disjoint_union (prior->char_set, curr->char_set, union_set));
-
- // Try changing some values, if change doesn't alter other values
- // continue normal action.
- fewest_collisions++;
-
- for (char *temp = union_set; *temp; temp++)
- if (!affects_prev (*temp, curr))
- {
- if (option[DEBUG])
- {
- fprintf (stderr, " by changing asso_value['%c'] (char #%d) to %d\n",
- *temp, temp - union_set + 1, Vectors::asso_values[*temp]);
- fflush (stderr);
- }
- return; // Good, doesn't affect previous hash values, we'll take it.
- }
-
- for (List_Node *ptr = this->key_list.head; ptr != curr; ptr = ptr->next)
- hash (ptr);
-
- hash (curr);
-
- if (option[DEBUG])
- {
- fprintf (stderr, "** collision not resolved after %d iterations, %d duplicates remain, continuing...\n",
- !option[FAST] ? option.get_asso_max () : option.get_iterations () ? option.get_iterations () : this->key_list.keyword_list_length (),
- fewest_collisions + this->key_list.total_duplicates);
- fflush (stderr);
- }
-}
-
-// Does the hard stuff.... Initializes the Iteration Number array,
-// and attempts to find a perfect function that will hash all the key
-// words without getting any duplications. This is made much easier
-// since we aren't attempting to generate *minimum* functions, only
-// perfect ones. If we can't generate a perfect function in one pass
-// *and* the user hasn't enabled the DUP option, we'll inform the user
-// to try the randomization option, use -D, or choose alternative key
-// positions. The alternatives (e.g., back-tracking) are too
-// time-consuming, i.e, exponential in the number of keys.
-
-int
-Gen_Perf::generate (void)
-{
-#if defined (LARGE_STACK_ARRAYS)
- STORAGE_TYPE buffer[max_hash_value + 1];
-#else
- // Note: we don't use new, because that invokes a custom operator new.
- STORAGE_TYPE *buffer
- = (STORAGE_TYPE*) malloc (sizeof(STORAGE_TYPE) * (max_hash_value + 1));
- if (buffer == NULL)
- abort ();
-#endif /* LARGE_STACK_ARRAYS */
-
- this->char_search.init (buffer, max_hash_value + 1);
-
- List_Node *curr;
-
- for (curr = this->key_list.head;
- curr;
- curr = curr->next)
- {
- hash (curr);
-
- for (List_Node *ptr = this->key_list.head;
- ptr != curr;
- ptr = ptr->next)
- if (ptr->hash_value == curr->hash_value)
- {
- change (ptr, curr);
- break;
- }
- num_done++;
- }
-
- // Make one final check, just to make sure nothing weird
- // happened....
-
- this->char_search.reset ();
-
- for (curr = this->key_list.head;
- curr;
- curr = curr->next)
- if (this->char_search.find (hash (curr)))
- if (option[DUP]) // Keep track of this number...
- this->key_list.total_duplicates++;
- else // Yow, big problems. we're outta here!
- {
- ACE_ERROR ((LM_ERROR, "\nInternal error, duplicate value %d:\n"
- "try options -D or -r, or use new key positions.\n\n", hash (curr)));
-#if !defined (LARGE_STACK_ARRAYS)
- free (buffer);
-#endif /* LARGE_STACK_ARRAYS */
- return 1;
- }
-
- // Sorts the key word list by hash value, and then outputs the list.
- // The generated hash table code is only output if the early stage
- // of processing turned out O.K.
-
- this->key_list.sort ();
- this->key_list.output ();
-#if !defined (LARGE_STACK_ARRAYS)
- free (buffer);
-#endif /* LARGE_STACK_ARRAYS */
- return 0;
-}
-
-// Prints out some diagnostics upon completion.
-
-Gen_Perf::~Gen_Perf (void)
-{
- if (option[DEBUG])
- {
- fprintf (stderr, "\ndumping occurrence and associated values tables\n");
-
- for (int i = 0; i < ALPHA_SIZE; i++)
- if (Vectors::occurrences[i])
- fprintf (stderr, "Vectors::asso_values[%c] = %6d, Vectors::occurrences[%c] = %6d\n",
- i, Vectors::asso_values[i], i, Vectors::occurrences[i]);
-
- fprintf (stderr, "end table dumping\n");
- }
-}
-
diff --git a/apps/gperf/src/Gen_Perf.h b/apps/gperf/src/Gen_Perf.h
deleted file mode 100644
index 4bdfc5ba0fd..00000000000
--- a/apps/gperf/src/Gen_Perf.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
-
-GNU GPERF is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111, USA. */
-
-#if !defined (GEN_PERF_H)
-#define GEN_PERF_H
-
-#include "Options.h"
-#include "Key_List.h"
-#include "Bool_Array.h"
-
-class Gen_Perf
-{
- // = TITLE
- // Provides high-level routines to manipulate the keyword list
- // structures the code generation output.
-public:
- Gen_Perf (void);
- ~Gen_Perf (void);
- int generate (void);
-
-private:
- void change (List_Node *prior, List_Node *curr);
- int affects_prev (char c, List_Node *curr);
- static int hash (List_Node *key_node);
- static int compute_disjoint_union (char *set_1, char *set_2, char *set_3);
- static void sort_set (char *union_set, int len);
-
- int max_hash_value;
- // Maximum possible hash value.
-
- int fewest_collisions;
- // Records fewest # of collisions for asso value.
-
- int num_done;
- // Number of keywords processed without a collision.
-
- Bool_Array char_search;
- // Table that keeps track of key collisions.
-
- Key_List key_list;
- // List of the keys we're trying to map into a perfect hash
- // function.
-};
-
-#endif /* GEN_PERF_H */
diff --git a/apps/gperf/src/Hash_Table.cpp b/apps/gperf/src/Hash_Table.cpp
deleted file mode 100644
index 3f5bbc258d0..00000000000
--- a/apps/gperf/src/Hash_Table.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-// $Id$
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111,
-USA. */
-
-#include "ace/ACE.h"
-#include "Hash_Table.h"
-
-#define NIL(TYPE) (TYPE *)0
-
-// The size of the hash table is always the smallest power of 2 >= the
-// size indicated by the user. This allows several optimizations,
-// including the use of double hashing and elimination of the mod
-// instruction. Note that the size had better be larger than the
-// number of items in the hash table, else there's trouble!!! Note
-// that the memory for the hash table is allocated *outside* the
-// intialization routine. This compromises information hiding
-// somewhat, but greatly reduces memory fragmentation, since we can
-// now use alloca!
-
-Hash_Table::Hash_Table (List_Node **table_ptr, int s)
- : collisions (0),
- size (s),
- table (table_ptr)
-{
- memset ((char *) table, 0, size * sizeof *table);
-}
-
-Hash_Table::~Hash_Table (void)
-{
- if (option[DEBUG])
- {
- int field_width = option.get_max_keysig_size ();
-
- fprintf (stderr, "\ndumping the hash table\ntotal available table slots = %d, total bytes = %d, total collisions = %d\n"
- "location, %*s, keyword\n", size, size * sizeof *table, collisions, field_width, "keysig");
-
- for (int i = size - 1; i >= 0; i--)
- if (table[i])
- fprintf (stderr, "%8d, %*s, %s\n",
- i, field_width, table[i]->char_set, table[i]->key);
-
- fprintf (stderr, "\nend dumping hash table\n\n");
- }
-}
-
-// If the ITEM is already in the hash table return the item found in
-// the table. Otherwise inserts the ITEM, and returns FALSE. Uses
-// double hashing.
-
-List_Node *
-Hash_Table::operator() (List_Node *item, int ignore_length)
-{
- unsigned hash_val = ACE::hash_pjw (item->char_set);
- int probe = hash_val & size - 1;
- int increment = (hash_val ^ item->length | 1) & size - 1;
-
- while (table[probe]
- && (strcmp (table[probe]->char_set, item->char_set)
- || (!ignore_length && table[probe]->length != item->length)))
- {
- collisions++;
- probe = probe + increment & size - 1;
- }
-
- return table[probe] ? table[probe] : (table[probe] = item, NIL (List_Node));
-}
diff --git a/apps/gperf/src/Hash_Table.h b/apps/gperf/src/Hash_Table.h
deleted file mode 100644
index 1890b0af467..00000000000
--- a/apps/gperf/src/Hash_Table.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111,
-USA. */
-
-#if !defined (HASH_TABLE_H)
-#define HASH_TABLE_H
-
-#include "Options.h"
-#include "List_Node.h"
-
-// @@ This class should be replaced by something in ACE, e.g.,
-// ACE_Hash_Map_Manager. Perhaps we should implement a new
-// ACE_Hash_Map that uses double hashing, however!
-class Hash_Table
-{
- // = TITLE
- // Hash table used to check for duplicate keyword entries.
- //
- // = DESCRIPTION
- // This implementation uses "double hashing."
-public:
- Hash_Table (List_Node **t,
- int s);
-
- ~Hash_Table (void);
-
- List_Node *operator () (List_Node *item, int ignore_length);
-
-private:
- List_Node **table;
- // Vector of pointers to linked lists of List_Node's.
-
- int size;
- // Size of the vector.
-
- int collisions;
- // Find out how well our double hashing is working!
-};
-
-#endif /* HASH_TABLE_H */
diff --git a/apps/gperf/src/Iterator.cpp b/apps/gperf/src/Iterator.cpp
deleted file mode 100644
index bfdd4c7f3e0..00000000000
--- a/apps/gperf/src/Iterator.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-// $Id$
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111,
-USA. */
-
-#include "Iterator.h"
-
-// Constructor for Iterator.
-
-Iterator::Iterator (char *s,
- int lo,
- int hi,
- int word_end,
- int bad_val,
- int key_end)
- : end (key_end),
- error_value (bad_val),
- end_word (word_end),
- str (s),
- hi_bound (hi),
- lo_bound (lo)
-{
-}
-
-// Provide an Iterator, returning the ``next'' value from the list of
-// valid values given in the constructor.
-
-int
-Iterator::operator() (void)
-{
- // Variables to record the Iterator's status when handling ranges,
- // e.g., 3-12.
-
- static int size;
- static int curr_value;
- static int upper_bound;
-
- if (size)
- {
- if (++curr_value >= upper_bound)
- size = 0;
- return curr_value;
- }
- else
- {
- while (*str)
- switch (*str)
- {
- default: return error_value;
- case ',': str++; break;
- case '$': str++; return end_word;
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- for (curr_value = 0; isdigit (*str); str++)
- curr_value = curr_value * 10 + *str - '0';
-
- if (*str == '-')
- {
-
- for (size = 1, upper_bound = 0;
- isdigit (*++str);
- upper_bound = upper_bound * 10 + *str - '0');
-
- if (upper_bound <= curr_value || upper_bound > hi_bound)
- return error_value;
- }
- return curr_value >= lo_bound && curr_value <= hi_bound
- ? curr_value : error_value;
- }
-
- return end;
- }
-}
diff --git a/apps/gperf/src/Iterator.h b/apps/gperf/src/Iterator.h
deleted file mode 100644
index 0f5973d69d1..00000000000
--- a/apps/gperf/src/Iterator.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-#if !defined (ITERATOR_H)
-#define ITERATOR_H
-
-#include "Options.h"
-
-class Iterator
-{
- // = TITLE
- // Provides an Iterator that expands and decodes a control string
- // containing digits and ranges, returning an integer every time the
- // generator function is called.
- //
- // = DESCRIPTION
- // This class is used to decode the user's key position requests.
- // For example: "-k 1,2,5-10,$" will return 1, 2, 5, 6, 7, 8, 9,
- // 10, and 0 ( representing the abstract ``last character of the
- // key'' on successive calls to the member function operator ().
- // No errors are handled in these routines, they are passed back
- // to the calling routines via a user-supplied Error_Value */
-public:
- Iterator (char *s,
- int lo,
- int hi,
- int word_end,
- int bad_val,
- int key_end);
- int operator () (void);
-
-private:
- char *str;
- // A pointer to the string provided by the user.
-
- int end;
- // Value returned after last key is processed.
-
- int end_word;
- // A value marking the abstract ``end of word'' (usually '$').
-
- int error_value;
- // Error value returned when input is syntactically erroneous.
-
- int hi_bound;
- // Greatest possible value, inclusive.
-
- int lo_bound;
- // Smallest possible value, inclusive.
-};
-
-#endif /* ITERATOR_H */
diff --git a/apps/gperf/src/Key_List.cpp b/apps/gperf/src/Key_List.cpp
deleted file mode 100644
index d749d8e03a6..00000000000
--- a/apps/gperf/src/Key_List.cpp
+++ /dev/null
@@ -1,1344 +0,0 @@
-// $Id$
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111,
-USA. */
-
-#include "ace/Read_Buffer.h"
-#include "Hash_Table.h"
-#include "Vectors.h"
-#include "Key_List.h"
-
-// Make the hash table 10 times larger than the number of keyword entries.
-static const int TABLE_MULTIPLE = 10;
-
-// Default type for generated code.
-static char *const default_array_type = "char *";
-
-// in_word_set return type, by default.
-static char *const default_return_type = "char *";
-
-// How wide the printed field width must be to contain the maximum hash value.
-static int field_width = 0;
-
-static int determined[ALPHA_SIZE];
-
-// Destructor dumps diagnostics during debugging.
-
-Key_List::~Key_List (void)
-{
- if (option[DEBUG])
- {
- fprintf (stderr,
- "\nDumping key list information:\ntotal non-static linked keywords = %d"
- "\ntotal keywords = %d\ntotal duplicates = %d\nmaximum key length = %d\n",
- list_len,
- total_keys,
- total_duplicates ? total_duplicates + 1 : 0,
- max_key_len);
- dump ();
- ACE_ERROR ((LM_ERROR, "End dumping list.\n\n"));
- }
-}
-
-// Gathers the input stream into a buffer until one of two things occur:
-//
-// 1. We read a '%' followed by a '%'
-// 2. We read a '%' followed by a '}'
-//
-// The first symbolizes the beginning of the keyword list proper, The
-// second symbolizes the end of the C source code to be generated
-// verbatim in the output file.
-//
-// I assume that the keys are separated from the optional preceding
-// struct declaration by a consecutive % followed by either % or }
-// starting in the first column. The code below uses an expandible
-// buffer to scan off and return a pointer to all the code (if any)
-// appearing before the delimiter. */
-
-char *
-Key_List::get_special_input (char delimiter)
-{
- int size = 80;
- char *buf = new char[size];
- int c, i;
-
- for (i = 0; (c = getchar ()) != EOF; i++)
- {
- if (c == '%')
- {
- if ((c = getchar ()) == delimiter)
- {
-
- while ((c = getchar ()) != '\n')
- ; /* discard newline */
-
- if (i == 0)
- return "";
- else
- {
- buf[delimiter == '%' && buf[i - 2] == ';' ? i - 2 : i - 1] = '\0';
- return buf;
- }
- }
- else
- buf[i++] = '%';
- }
- else if (i >= size) // Yikes, time to grow the buffer!
- {
- char *temp = new char[size *= 2];
- int j;
-
- for (j = 0; j < i; j++)
- temp[j] = buf[j];
-
- buf = temp;
- }
- buf[i] = c;
- }
-
- return 0; // Problem here.
-}
-
-// Stores any C text that must be included verbatim into the generated
-// code output.
-
-char *
-Key_List::save_include_src (void)
-{
- int c;
-
- if ((c = getchar ()) != '%')
- ungetc (c, stdin);
- else if ((c = getchar ()) != '{')
- ACE_ERROR ((LM_ERROR,
- "internal error, %c != '{' on line %d in file %s%a",
- c,
- __LINE__,
- __FILE__,
- 1));
- else
- return get_special_input ('}');
- return "";
-}
-
-// Determines from the input file whether the user wants to build a
-// table from a user-defined struct, or whether the user is content to
-// simply use the default array of keys.
-
-char *
-Key_List::get_array_type (void)
-{
- return get_special_input ('%');
-}
-
-// Sets up the Return_Type, the Struct_Tag type and the Array_Type
-// based upon various user Options.
-
-void
-Key_List::set_output_types (void)
-{
- if (option[TYPE] && !(array_type = get_array_type ()))
- return; // Something's wrong, bug we'll catch it later on....
- else if (option[TYPE]) // Yow, we've got a user-defined type...
- {
- int struct_tag_length = ACE_OS::strcspn (array_type, "{\n\0");
-
- if (option[POINTER]) // And it must return a pointer...
- {
- return_type = new char[struct_tag_length + 2];
- strncpy (return_type, array_type, struct_tag_length);
- return_type[struct_tag_length] = '*';
- return_type[struct_tag_length + 1] = '\0';
- }
-
- struct_tag = new char[struct_tag_length + 1];
- strncpy (struct_tag, array_type, struct_tag_length);
- struct_tag[struct_tag_length] = '\0';
- }
- else if (option[POINTER]) // Return a char *.
- return_type = default_array_type;
-}
-
-// Reads in all keys from standard input and creates a linked list
-// pointed to by Head. This list is then quickly checked for
-// ``links,'' i.e., unhashable elements possessing identical key sets
-// and lengths.
-
-void
-Key_List::read_keys (void)
-{
- include_src = save_include_src ();
- set_output_types ();
-
- ACE_Read_Buffer input (stdin);
-
- char *ptr = input.read ('\n');
-
- if (ptr == 0)
- // Oops, problem with the input file.
- ACE_ERROR ((LM_ERROR, "No words in input file, did you forget to prepend %s"
- " or use -t accidentally?\n%a", "%%", 1));
-
- // Read in all the keywords from the input file.
- else
- {
- const char *delimiter = option.get_delimiter ();
- List_Node *temp, *trail = 0;
-
- head = new List_Node (ptr, ACE_OS::strcspn (ptr, delimiter));
-
- for (temp = head;
- (ptr = input.read ('\n')) && strcmp (ptr, "%%");
- temp = temp->next)
- {
- temp->next = new List_Node (ptr, ACE_OS::strcspn (ptr, delimiter));
- total_keys++;
- }
-
- // See if any additional source code is included at end of this file.
- if (ptr)
- additional_code = 1;
-
- // Hash table this number of times larger than keyword number.
- int table_size = (list_len = total_keys) * TABLE_MULTIPLE;
-
-#if defined (LARGE_STACK_ARRAYS)
- // By allocating the memory here we save on dynamic allocation
- // overhead. Table must be a power of 2 for the hash function
- // scheme to work.
- List_Node *table[ACE_POW (table_size)];
-#else
- // Note: we don't use new, because that invokes a custom operator new.
- int malloc_size = ACE_POW (table_size) * sizeof(List_Node*);
- if (malloc_size == 0) malloc_size = 1;
- List_Node **table = (List_Node**)malloc(malloc_size);
- if (table == NULL)
- abort ();
-#endif /* LARGE_STACK_ARRAYS */
-
- // Make large hash table for efficiency.
- Hash_Table found_link (table, table_size);
-
- // Test whether there are any links and also set the maximum length
- an identifier in the keyword list. */
-
- for (temp = head; temp; temp = temp->next)
- {
- List_Node *ptr = found_link (temp, option[NOLENGTH]);
-
- // Check for links. We deal with these by building an
- // equivalence class of all duplicate values (i.e., links)
- // so that only 1 keyword is representative of the entire
- // collection. This *greatly* simplifies processing during
- // later stages of the program.
-
- if (ptr)
- {
- total_duplicates++;
- list_len--;
- trail->next = temp->next;
- temp->link = ptr->link;
- ptr->link = temp;
-
- // Complain if user hasn't enabled the duplicate option.
- if (!option[DUP] || option[DEBUG])
- ACE_ERROR ((LM_ERROR, "Key link: \"%s\" = \"%s\", with key set \"%s\".\n",
- temp->key, ptr->key, temp->char_set));
- }
- else
- trail = temp;
-
- // Update minimum and maximum keyword length, if needed.
- if (max_key_len < temp->length)
- max_key_len = temp->length;
- if (min_key_len > temp->length)
- min_key_len = temp->length;
- }
-
-#if !defined (LARGE_STACK_ARRAYS)
- free (table);
-#endif /* LARGE_STACK_ARRAYS */
-
- // Exit program if links exists and option[DUP] not set, since
- // we can't continue.
- if (total_duplicates)
- ACE_ERROR ((LM_ERROR,
- option[DUP]
- ? "%d input keys have identical hash values, examine output carefully...\n"
- : "%d input keys have identical hash values,\ntry different key positions or use option -D.\n%a",
- total_duplicates,
- 1));
- if (option[ALLCHARS])
- option.set_keysig_size (max_key_len);
- }
-}
-
-// Recursively merges two sorted lists together to form one sorted
-// list. The ordering criteria is by frequency of occurrence of
-// elements in the key set or by the hash value. This is a kludge,
-// but permits nice sharing of almost identical code without incurring
-// the overhead of a function call comparison.
-
-List_Node *
-Key_List::merge (List_Node *list1, List_Node *list2)
-{
- if (!list1)
- return list2;
- else if (!list2)
- return list1;
- else if (occurrence_sort && list1->occurrence < list2->occurrence
- || hash_sort && list1->hash_value > list2->hash_value)
- {
- list2->next = merge (list2->next, list1);
- return list2;
- }
- else
- {
- list1->next = merge (list1->next, list2);
- return list1;
- }
-}
-
-// Applies the merge sort algorithm to recursively sort the key list
-// by frequency of occurrence of elements in the key set.
-
-List_Node *
-Key_List::merge_sort (List_Node *a_head)
-{
- if (!a_head || !a_head->next)
- return a_head;
- else
- {
- List_Node *middle = a_head;
- List_Node *temp = a_head->next->next;
-
- while (temp)
- {
- temp = temp->next;
- middle = middle->next;
- if (temp)
- temp = temp->next;
- }
-
- temp = middle->next;
- middle->next = 0;
- return merge (merge_sort (a_head), merge_sort (temp));
- }
-}
-
-// Returns the frequency of occurrence of elements in the key set.
-
-inline int
-Key_List::get_occurrence (List_Node *ptr)
-{
- int value = 0;
-
- for (char *temp = ptr->char_set; *temp; temp++)
- value += Vectors::occurrences[*temp];
-
- return value;
-}
-
-// Enables the index location of all key set elements that are now
-// determined.
-
-inline void
-Key_List::set_determined (List_Node *ptr)
-{
- for (char *temp = ptr->char_set; *temp; temp++)
- determined[*temp] = 1;
-}
-
-// Returns TRUE if PTR's key set is already completely determined.
-
-inline int
-Key_List::already_determined (List_Node *ptr)
-{
- int is_determined = 1;
-
- for (char *temp = ptr->char_set; is_determined && *temp; temp++)
- is_determined = determined[*temp];
-
- return is_determined;
-}
-
-// Reorders the table by first sorting the list so that frequently
-// occuring keys appear first, and then the list is reorded so that
-// keys whose values are already determined will be placed towards the
-// front of the list. This helps prune the search time by handling
-// inevitable collisions early in the search process. See Cichelli's
-// paper from Jan 1980 JACM for details....
-
-void
-Key_List::reorder (void)
-{
- List_Node *ptr;
-
- for (ptr = head; ptr; ptr = ptr->next)
- ptr->occurrence = get_occurrence (ptr);
-
- occurrence_sort = !(hash_sort = 0); // Pretty gross, eh?!
-
- for (ptr = head = merge_sort (head); ptr->next; ptr = ptr->next)
- {
- set_determined (ptr);
-
- if (already_determined (ptr->next))
- continue;
- else
- {
- List_Node *trail_ptr = ptr->next;
- List_Node *run_ptr = trail_ptr->next;
-
- for (; run_ptr; run_ptr = trail_ptr->next)
- {
-
- if (already_determined (run_ptr))
- {
- trail_ptr->next = run_ptr->next;
- run_ptr->next = ptr->next;
- ptr = ptr->next = run_ptr;
- }
- else
- trail_ptr = run_ptr;
- }
- }
- }
-}
-
-// Outputs the maximum and minimum hash values. Since the list is
-// already sorted by hash value all we need to do is find the final
-// item!
-
-void
-Key_List::output_min_max ()
-{
- List_Node *temp;
- for (temp = head; temp->next; temp = temp->next)
- ;
-
- min_hash_value = head->hash_value;
- max_hash_value = temp->hash_value;
-
- if (!option[ENUM])
- printf ("\n#define TOTAL_KEYWORDS %d\n#define MIN_WORD_LENGTH %d"
- "\n#define MAX_WORD_LENGTH %d\n#define MIN_HASH_VALUE %d"
- "\n#define MAX_HASH_VALUE %d\n#define HASH_VALUE_RANGE %d"
- "\n#define DUPLICATES %d\n\n",
- total_keys, min_key_len, max_key_len, min_hash_value,
- max_hash_value, max_hash_value - min_hash_value + 1,
- total_duplicates ? total_duplicates + 1 : 0);
- else if (option[GLOBAL])
- printf ("enum\n{\n"
- " TOTAL_KEYWORDS = %d,\n"
- " MIN_WORD_LENGTH = %d,\n"
- " MAX_WORD_LENGTH = %d,\n"
- " MIN_HASH_VALUE = %d,\n"
- " MAX_HASH_VALUE = %d,\n"
- " HASH_VALUE_RANGE = %d,\n"
- " DUPLICATES = %d\n};\n\n",
- total_keys, min_key_len, max_key_len, min_hash_value,
- max_hash_value, max_hash_value - min_hash_value + 1,
- total_duplicates ? total_duplicates + 1 : 0);
-}
-
-// Generates the output using a C switch. This trades increased
-// search time for decreased table space (potentially *much* less
-// space for sparse tables). It the user has specified their own
-// struct in the keyword file *and* they enable the POINTER option we
-// have extra work to do. The solution here is to maintain a local
-// static array of user defined struct's, as with the
-// Output_Lookup_Function. Then we use for switch statements to
-// perform either a strcmp or strncmp, returning 0 if the str fails to
-// match, and otherwise returning a pointer to appropriate index
-// location in the local static array.
-
-void
-Key_List::output_switch (void)
-{
- char *comp_buffer;
- List_Node *curr = head;
- int pointer_and_type_enabled = option[POINTER] && option[TYPE];
- int total_switches = option.get_total_switches ();
- int switch_size = keyword_list_length () / total_switches;
-
- if (pointer_and_type_enabled)
- {
-#if defined (__GNUG__)
- comp_buffer = (char *) alloca (strlen ("charmap[*str] == *resword->%s && !strncasecmp (str + 1, resword->%s + 1, len - 1)")
- + 2 * strlen (option.get_key_name ()) + 1);
-#else
- comp_buffer = new char [strlen ("charmap[*str] == *resword->%s && !strncasecmp (str + 1, resword->%s + 1, len - 1)")
- + 2 * strlen (option.get_key_name ()) + 1];
-#endif
- if (option[COMP])
- sprintf (comp_buffer, "%s == *resword->%s && !%s (str + 1, resword->%s + 1, len - 1)",
- option[STRCASECMP] ? "charmap[*str]" : "*str", option.get_key_name (),
- option[STRCASECMP] ? "strncasecmp" : "strncmp", option.get_key_name ());
- else
- sprintf (comp_buffer, "%s == *resword->%s && !%s (str + 1, resword->%s + 1)",
- option[STRCASECMP] ? "charmap[*str]" : "*str", option.get_key_name (),
- option[STRCASECMP] ? "strcasecmp" : "strcmp", option.get_key_name ());
- }
- else
- {
- if (option[COMP])
- comp_buffer = option[STRCASECMP]
- ? "charmap[*str] == *resword && !strncasecmp (str + 1, resword + 1, len - 1)"
- : "*str == *resword && !strncmp (str + 1, resword + 1, len - 1)";
- else
- comp_buffer = option[STRCASECMP]
- ? "charmap[*str] == *resword && !strcasecmp (str + 1, resword + 1, len - 1)"
- : "*str == *resword && !strcmp (str + 1, resword + 1, len - 1)";
- }
- if (!option[OPTIMIZE])
- printf (" if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)\n {\n");
- printf (" register int key = %s (str, len);\n\n", option.get_hash_name ());
- if (!option[OPTIMIZE])
- printf (" if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)\n");
-
- printf (" {\n");
-
- // Properly deal with user's who request multiple switch statements.
-
- while (curr)
- {
- List_Node *temp = curr;
- int lowest_case_value = curr->hash_value;
- int number_of_cases = 0;
-
- // Figure out a good cut point to end this switch.
-
- for (; temp && ++number_of_cases < switch_size; temp = temp->next)
- if (temp->next && temp->hash_value == temp->next->hash_value)
- while (temp->next && temp->hash_value == temp->next->hash_value)
- temp = temp->next;
-
- if (temp && total_switches != 1)
- printf (" if (key <= %d)\n {\n", temp->hash_value);
- else
- printf (" {\n");
-
- // Output each keyword as part of a switch statement indexed by
- // hash value.
-
- if (option[POINTER] || option[DUP])
- {
- int i = 0;
-
- printf (" %s%s *resword; %s\n\n",
- option[CONST] ? "const " : "",
- pointer_and_type_enabled ? struct_tag : "char",
- option[LENTABLE] && !option[DUP] ? "int key_len;" : "");
- if (total_switches == 1)
- {
- printf (" switch (key)\n {\n");
- lowest_case_value = 0;
- }
- else
- printf (" switch (key - %d)\n {\n", lowest_case_value);
-
- for (temp = curr; temp && ++i <= number_of_cases; temp = temp->next)
- {
- printf (" case %*d:", field_width, temp->hash_value - lowest_case_value);
- if (option[DEBUG])
- printf (" /* hash value = %4d, keyword = \"%s\" */", temp->hash_value, temp->key);
- putchar ('\n');
-
- // Handle `natural links,' i.e., those that occur statically.
-
- if (temp->link)
- {
- List_Node *links;
-
- for (links = temp; links; links = links->link)
- {
- if (pointer_and_type_enabled)
- printf (" resword = &wordlist[%d];\n", links->index);
- else
- printf (" resword = \"%s\";\n", links->key);
- printf (" if (%s) return resword;\n", comp_buffer);
- }
- }
- // Handle unresolved duplicate hash values. These are
- // guaranteed to be adjacent since we sorted the keyword
- // list by increasing hash values.
- if (temp->next && temp->hash_value == temp->next->hash_value)
- {
-
- for ( ; temp->next && temp->hash_value == temp->next->hash_value;
- temp = temp->next)
- {
- if (pointer_and_type_enabled)
- printf (" resword = &wordlist[%d];\n", temp->index);
- else
- printf (" resword = \"%s\";\n", temp->key);
- printf (" if (%s) return resword;\n", comp_buffer);
- }
- if (pointer_and_type_enabled)
- printf (" resword = &wordlist[%d];\n", temp->index);
- else
- printf (" resword = \"%s\";\n", temp->key);
- printf (" return %s ? resword : 0;\n", comp_buffer);
- }
- else if (temp->link)
- printf (" return 0;\n");
- else
- {
- if (pointer_and_type_enabled)
- printf (" resword = &wordlist[%d];", temp->index);
- else
- printf (" resword = \"%s\";", temp->key);
- if (option[LENTABLE] && !option[DUP])
- printf (" key_len = %d;", temp->length);
- printf (" break;\n");
- }
- }
- printf (" default: return 0;\n }\n");
- if (option[OPTIMIZE])
- printf (" return resword;\n");
- else
- {
- printf (option[LENTABLE] && !option[DUP]
- ? " if (len == key_len && %s)\n return resword;\n"
- : " if (%s)\n return resword;\n", comp_buffer);
- printf (" return 0;\n");
- }
- printf (" }\n");
- curr = temp;
- }
- else /* Nothing special required here. */
- {
- int i = 0;
- printf (" char *s;\n\n switch (key - %d)\n {\n",
- lowest_case_value);
-
- for (temp = curr; temp && ++i <= number_of_cases; temp = temp->next)
- if (option[LENTABLE])
- printf (" case %*d: if (len == %d) s = \"%s\"; else return 0; break;\n",
- field_width, temp->hash_value - lowest_case_value,
- temp->length, temp->key);
- else
- printf (" case %*d: s = \"%s\"; break;\n",
- field_width, temp->hash_value - lowest_case_value, temp->key);
-
- printf (" default: return 0;\n }\n ");
- if (option[COMP])
- printf ("return %s == *s && !%s;\n }\n",
- option[STRCASECMP] ? "charmap[*str]" : "*str",
- option[STRCASECMP] ? "strncasecmp (s + 1, str + 1, len - 1)" : "strcmp (s + 1, str + 1)");
- else
- printf ("return %s == *s && !%s;\n }\n",
- option[STRCASECMP] ? "charmap[*str]" : "*str",
- option[STRCASECMP] ? "strcasecmp (s + 1, str + 1, len - 1)" : "strcmp (s + 1, str + 1)");
- curr = temp;
- }
- }
- printf (" }\n %s\n}\n", option[OPTIMIZE] ? "" : "}\n return 0;");
-}
-
-// Prints out a table of keyword lengths, for use with the comparison
-// code in generated function ``in_word_set.''
-
-void
-Key_List::output_keylength_table (void)
-{
- const int max_column = 15;
- int index = 0;
- int column = 0;
- char *indent = option[GLOBAL] ? "" : " ";
- List_Node *temp;
-
- if (!option[DUP] && !option[SWITCH])
- {
- printf ("\n%sstatic %sunsigned %s lengthtable[] =\n%s%s{\n ",
- indent, option[CONST] ? "const " : "",
- max_key_len <= UCHAR_MAX ? "char" : (max_key_len <= USHRT_MAX ? "short" : "long"),
- indent, indent);
-
- for (temp = head; temp; temp = temp->next, index++)
- {
-
- if (index < temp->hash_value)
- for ( ; index < temp->hash_value; index++)
- printf ("%3d,%s", 0, ++column % (max_column - 1) ? "" : "\n ");
-
- printf ("%3d,%s", temp->length, ++column % (max_column - 1 ) ? "" : "\n ");
- }
-
- printf ("\n%s%s};\n", indent, indent);
- }
-}
-
-// Prints out the array containing the key words for the Gen_Perf hash
-// function.
-
-void
-Key_List::output_keyword_table (void)
-{
- char *l_brace = *head->rest ? "{" : "";
- char *r_brace = *head->rest ? "}," : "";
- char *indent = option[GLOBAL] ? "" : " ";
- int index = 0;
- List_Node *temp;
-
- printf ("%sstatic %s%swordlist[] =\n%s%s{\n",
- indent, option[CONST] ? "const " : "", struct_tag, indent, indent);
-
- // Skip over leading blank entries if there are no duplicates.
-
- if (0 < head->hash_value)
- printf (" ");
- for (int column = 1; index < head->hash_value; index++, column++)
- printf ("%s\"\",%s %s", l_brace, r_brace, column % 9 ? "" : "\n ");
- if (0 < head->hash_value && column % 10)
- printf ("\n");
-
- // Generate an array of reserved words at appropriate locations.
-
- for (temp = head ; temp; temp = temp->next, index++)
- {
- temp->index = index;
-
- if (!option[SWITCH] && (total_duplicates == 0 || !option[DUP]) && index < temp->hash_value)
- {
- int column;
-
- printf (" ");
-
- for (column = 1; index < temp->hash_value; index++, column++)
- printf ("%s\"\",%s %s", l_brace, r_brace, column % 9 ? "" : "\n ");
-
- if (column % 10)
- printf ("\n");
- else
- {
- printf ("%s\"%s\", %s%s", l_brace, temp->key, temp->rest, r_brace);
- if (option[DEBUG])
- printf (" /* hash value = %d, index = %d */", temp->hash_value, temp->index);
- putchar ('\n');
- continue;
- }
- }
-
- printf (" %s\"%s\", %s%s", l_brace, temp->key, temp->rest, r_brace);
- if (option[DEBUG])
- printf (" /* hash value = %d, index = %d */", temp->hash_value, temp->index);
- putchar ('\n');
-
- // Deal with links specially.
- if (temp->link)
- for (List_Node *links = temp->link; links; links = links->link)
- {
- links->index = ++index;
- printf (" %s\"%s\", %s%s", l_brace, links->key, links->rest, r_brace);
- if (option[DEBUG])
- printf (" /* hash value = %d, index = %d */", links->hash_value, links->index);
- putchar ('\n');
- }
- }
- printf ("%s%s};\n\n", indent, indent);
-}
-
-// Generates C code for the hash function that returns the proper
-// encoding for each key word.
-
-void
-Key_List::output_hash_function (void)
-{
- const int max_column = 10;
- int count = max_hash_value;
-
- // Calculate maximum number of digits required for MAX_HASH_VALUE.
-
- for (field_width = 2; (count /= 10) > 0; field_width++)
- ;
-
- if (option[GNU])
- printf ("#ifdef __GNUC__\ninline\n#endif\n");
-
- if (option[C])
- printf ("static ");
- printf ("unsigned int\n");
- if (option[CPLUSPLUS])
- printf ("%s::", option.get_class_name ());
-
- printf (option[ANSI]
- ? "%s (register const char *str, register int len)\n{\n static %sunsigned %s asso_values[] =\n {"
- : "%s (str, len)\n register char *str;\n register int unsigned len;\n{\n static %sunsigned %s asso_values[] =\n {",
- option.get_hash_name (), option[CONST] ? "const " : "",
- max_hash_value <= UCHAR_MAX ? "char" : (max_hash_value <= USHRT_MAX ? "short" : "int"));
-
- for (count = 0; count < ALPHA_SIZE; ++count)
- {
- if (!(count % max_column))
- printf ("\n ");
-
- printf ("%*d,",
- field_width,
- Vectors::occurrences[count] ? Vectors::asso_values[count] : max_hash_value + 1);
- }
-
- // Optimize special case of ``-k 1,$''
- if (option[DEFAULTCHARS])
- {
- if (option[STRCASECMP])
- printf ("\n };\n return %sasso_values[charmap[str[len - 1]]] + asso_values[charmap[str[0]]];\n}\n\n",
- option[NOLENGTH] ? "" : "len + ");
- else
- printf ("\n };\n return %sasso_values[str[len - 1]] + asso_values[str[0]];\n}\n\n",
- option[NOLENGTH] ? "" : "len + ");
- }
- else
- {
- int key_pos;
-
- option.reset ();
-
- // Get first (also highest) key position.
- key_pos = option.get ();
-
- // We can perform additional optimizations here.
- if (!option[ALLCHARS] && key_pos <= min_key_len)
- {
- printf ("\n };\n return %s", option[NOLENGTH] ? "" : "len + ");
-
- for (; key_pos != WORD_END; )
- {
- printf (option[STRCASECMP] ? "asso_values[charmap[str[%d]]]" : "asso_values[str[%d]]", key_pos - 1);
- if ((key_pos = option.get ()) != EOS)
- printf (" + ");
- else
- break;
- }
-
- printf ("%s;\n}\n\n", key_pos == WORD_END
- ? (option[STRCASECMP] ? "asso_values[charmap[str[len - 1]]]" : "asso_values[str[len - 1]]")
- : "");
- }
-
- // We've got to use the correct, but brute force, technique.
- else
- {
- printf ("\n };\n register int hval = %s;\n\n switch (%s)\n {\n default:\n",
- option[NOLENGTH] ? "0" : "len", option[NOLENGTH] ? "len" : "hval");
-
- // User wants *all* characters considered in hash.
- if (option[ALLCHARS])
- {
- int i;
-
- // Break these options up for speed (gee, is this misplaced efficiency or what?!
- if (option[STRCASECMP])
-
- for (i = max_key_len; i > 0; i--)
- printf (" case %d:\n hval += asso_values[charmap[str[%d]]];\n", i, i - 1);
-
- else
-
- for (i = max_key_len; i > 0; i--)
- printf (" case %d:\n hval += asso_values[str[%d]];\n", i, i - 1);
-
- printf (" }\n return hval;\n}\n\n");
- }
- else // do the hard part...
- {
- count = key_pos + 1;
-
- do
- {
-
- while (--count > key_pos)
- printf (" case %d:\n", count);
-
- printf (option[STRCASECMP]
- ? " case %d:\n hval += asso_values[charmap[str[%d]]];\n"
- : " case %d:\n hval += asso_values[str[%d]];\n",
- key_pos, key_pos - 1);
- }
- while ((key_pos = option.get ()) != EOS && key_pos != WORD_END);
-
- printf (" }\n return hval%s;\n}\n\n",
- key_pos == WORD_END
- ? (option[STRCASECMP] ? " + asso_values[charmap[str[len - 1]]]" : " + asso_values[str[len - 1]]")
- : "");
- }
- }
- }
-}
-
-// Generates the large, sparse table that maps hash values in the
-// smaller, contiguous range of the keyword table.
-
-void
-Key_List::output_lookup_array (void)
-{
- if (total_duplicates > 0)
- {
- const int DEFAULT_VALUE = -1;
-
- struct duplicate_entry
- {
- int hash_value; // Hash value for this particular duplicate set.
- int index; // Index into the main keyword storage array.
- int count; // Number of consecutive duplicates at this index.
- };
-#if defined (LARGE_STACK_ARRAYS)
- duplicate_entry duplicates[total_duplicates];
- int lookup_array[max_hash_value + 1];
-#else
- // Note: we don't use new, because that invokes a custom operator new.
- duplicate_entry *duplicates = (duplicate_entry*)
- malloc (total_duplicates * sizeof(duplicate_entry));
- int *lookup_array = (int*)malloc(sizeof(int) * (max_hash_value + 1));
- if (duplicates == NULL || lookup_array == NULL)
- abort();
-#endif /* LARGE_STACK_ARRAYS */
- duplicate_entry *dup_ptr = duplicates;
- int *lookup_ptr = lookup_array + max_hash_value + 1;
-
- while (lookup_ptr > lookup_array)
- *--lookup_ptr = DEFAULT_VALUE;
-
- for (List_Node *temp = head; temp; temp = temp->next)
- {
- int hash_value = temp->hash_value;
- lookup_array[hash_value] = temp->index;
- if (option[DEBUG])
- fprintf (stderr, "keyword = %s, index = %d\n", temp->key, temp->index);
- if (!temp->link &&
- (!temp->next || hash_value != temp->next->hash_value))
- continue;
-#if defined (LARGE_STACK_ARRAYS)
- *dup_ptr = (duplicate_entry) { hash_value, temp->index, 1 };
-#else
- duplicate_entry _dups;
- _dups.hash_value = hash_value;
- _dups.index = temp->index;
- _dups.count = 1;
- *dup_ptr = _dups;
-#endif /* LARGE_STACK_ARRAYS */
-
- for (List_Node *ptr = temp->link; ptr; ptr = ptr->link)
- {
- dup_ptr->count++;
- if (option[DEBUG])
- fprintf (stderr, "static linked keyword = %s, index = %d\n", ptr->key, ptr->index);
- }
-
- while (temp->next && hash_value == temp->next->hash_value)
- {
- temp = temp->next;
- dup_ptr->count++;
- if (option[DEBUG])
- fprintf (stderr, "dynamic linked keyword = %s, index = %d\n", temp->key, temp->index);
-
- for (List_Node *ptr = temp->link; ptr; ptr = ptr->link)
- {
- dup_ptr->count++;
- if (option[DEBUG])
- fprintf (stderr, "static linked keyword = %s, index = %d\n", ptr->key, ptr->index);
- }
- }
- dup_ptr++;
- }
-
- while (--dup_ptr >= duplicates)
- {
- if (option[DEBUG])
- fprintf (stderr, "dup_ptr[%d]: hash_value = %d, index = %d, count = %d\n",
- dup_ptr - duplicates, dup_ptr->hash_value, dup_ptr->index, dup_ptr->count);
-
- // Start searching for available space towards the right
- // part of the lookup array.
- int i;
- for (i = dup_ptr->hash_value; i < max_hash_value; i++)
- if (lookup_array[i] == DEFAULT_VALUE && lookup_array[i + 1] == DEFAULT_VALUE)
- {
- lookup_array[i] = -dup_ptr->index;
- lookup_array[i + 1] = -dup_ptr->count;
- lookup_array[dup_ptr->hash_value] = max_hash_value + (i - dup_ptr->hash_value);
- break;
- }
-
- // If we didn't find it to the right look to the left instead...
- if (i == max_hash_value)
- {
-
- for (i = dup_ptr->hash_value; i > 0; i--)
- if (lookup_array[i] == DEFAULT_VALUE && lookup_array[i - 1] == DEFAULT_VALUE)
- {
- lookup_array[i - 1] = -dup_ptr->index;
- lookup_array[i] = -dup_ptr->count;
- lookup_array[dup_ptr->hash_value] = -(max_hash_value + (dup_ptr->hash_value - i + 1));
- break;
- }
-
- // We are in *big* trouble if this happens!
- assert (i != 0);
- }
- }
-
- int max = INT_MIN;
- lookup_ptr = lookup_array + max_hash_value + 1;
- while (lookup_ptr > lookup_array)
- {
- int val = abs (*--lookup_ptr);
- if (max < val)
- max = val;
- }
-
- char *indent = option[GLOBAL] ? "" : " ";
- printf ("%sstatic %s%s lookup[] =\n%s%s{\n ", indent, option[CONST] ? "const " : "",
- max <= SCHAR_MAX ? "char" : (max <= USHRT_MAX ? "short" : "int"),
- indent, indent);
-
- int count = max;
-
- // Calculate maximum number of digits required for MAX_HASH_VALUE.
-
- for (field_width = 2; (count /= 10) > 0; field_width++)
- ;
-
- const int max_column = 15;
- int column = 0;
-
- for (lookup_ptr = lookup_array;
- lookup_ptr < lookup_array + max_hash_value + 1;
- lookup_ptr++)
- printf ("%*d,%s", field_width, *lookup_ptr, ++column % (max_column - 1) ? "" : "\n ");
-
- printf ("\n%s%s};\n\n", indent, indent);
-#if !LARGE_STACK_ARRAYS
- free (duplicates);
- free (lookup_array);
-#endif
- }
-}
-
-// Generates C code to perform the keyword lookup.
-
-void
-Key_List::output_lookup_function (void)
-{
- if (!option[OPTIMIZE])
- printf (" if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)\n {\n");
- printf (" register int key = %s (str, len);\n\n", option.get_hash_name ());
- if (!option[OPTIMIZE])
- printf (" if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)\n");
- printf (" {\n");
-
- if (option[DUP] && total_duplicates > 0)
- {
- printf (" register int index = lookup[key];\n\n"
- " if (index >= 0 && index < MAX_HASH_VALUE)\n");
- if (option[OPTIMIZE])
- printf (" return %swordlist[index];\n", option[TYPE] && option[POINTER] ? "&" : "");
- else
- {
- printf (" {\n"
- " register %schar *s = wordlist[index]", option[CONST] ? "const " : "");
- if (array_type != default_array_type)
- printf (".%s", option.get_key_name ());
-
- printf (";\n\n if (%s%s == *s && !%s)\n return %s;\n }\n",
- option[LENTABLE] ? "len == lengthtable[key]\n && " : "",
- option[STRCASECMP] ? "charmap[*str]" : "*str",
- option[COMP] ? (option[STRCASECMP] ? "strncasecmp (str + 1, s + 1, len - 1)" : "strncmp (str + 1, s + 1, len - 1)")
- : (option[STRCASECMP] ? "strcasecmp (str + 1, s + 1)" : "strcmp (str + 1, s + 1)"),
- option[TYPE] && option[POINTER] ? "&wordlist[index]" : "s");
- printf (" else if (index < 0 && index >= -MAX_HASH_VALUE)\n"
- " return 0;\n");
- }
- printf (" else\n {\n"
- " register int offset = key + index + (index > 0 ? -MAX_HASH_VALUE : MAX_HASH_VALUE);\n"
- " register %s%s*base = &wordlist[-lookup[offset]];\n"
- " register %s%s*ptr = base + -lookup[offset + 1];\n\n"
- " while (--ptr >= base)\n ",
- option[CONST] ? "const " : "", struct_tag,
- option[CONST] ? "const " : "", struct_tag);
- if (array_type != default_array_type)
- {
- if (option[COMP])
- printf ("if (%s == *ptr->%s && !%s (str + 1, ptr->%s + 1, len - 1",
- option[STRCASECMP] ? "charmap[*str]" : "*str", option.get_key_name (),
- option[STRCASECMP] ? "strncasecmp" : "strncmp", option.get_key_name ());
- else
- printf ("if (%s == *ptr->%s && !%s (str + 1, ptr->%s + 1",
- option[STRCASECMP] ? "charmap[*str]" : "*str", option.get_key_name (),
- option[STRCASECMP] ? "strcasecmp" : "strcmp", option.get_key_name ());
- }
- else
- printf (option[STRCASECMP] ? "if (charmap[*str] == **ptr && !%s" : "if (*str == **ptr && !%s",
- option[COMP]
- ? (option[STRCASECMP] ? "strncasecmp (str + 1, *ptr + 1, len - 1" : "strncmp (str + 1, *ptr + 1, len - 1")
- : (option[STRCASECMP] ? "strcasecmp (str + 1, *ptr + 1" : "strcmp (str + 1, *ptr + 1"));
- printf ("))\n return %sptr;"
- "\n }\n }\n %s\n}\n", array_type ==
- default_array_type ? "*" : "", option[OPTIMIZE] ? "" : "}\n return 0;");
- }
- else
- {
- if (option[OPTIMIZE])
- printf (" return %swordlist[key]", option[TYPE] && option[POINTER] ? "&" : "");
- else
- {
- printf (" register %schar *s = wordlist[key]", option[CONST] ? "const " : "");
-
- if (array_type != default_array_type)
- printf (".%s", option.get_key_name ());
-
- printf (";\n\n if (%s%s == *s && !%s)\n return %s",
- option[LENTABLE] ? "len == lengthtable[key]\n && " : "",
- option[STRCASECMP] ? "charmap[*str]" : "*str",
- option[COMP]
- ? (option[STRCASECMP] ? "strncasecmp (str + 1, s + 1, len - 1)" : "strncmp (str + 1, s + 1, len - 1)")
- : (option[STRCASECMP] ? "strcasecmp (str + 1, s + 1)" : "strcmp (str + 1, s + 1)"),
- option[TYPE] && option[POINTER] ? "&wordlist[key]" : "s");
- }
- printf (";\n }\n %s\n}\n", option[OPTIMIZE] ? "" : "}\n return 0;");
- }
-}
-
-// Output the table and the functions that map upper case into lower case!
-
-void
-Key_List::output_strcasecmp (void)
-{
- printf ("%s",
- "/* This array is designed for mapping upper and lower case letter\n"
- " * together for a case independent comparison. The mappings are\n"
- " * based upon ascii character sequences.\n */"
- "static char charmap[] = {\n"
- " '\\000', '\\001', '\\002', '\\003', '\\004', '\\005', '\\006', '\\007',\n"
- " '\\010', '\\011', '\\012', '\\013', '\\014', '\\015', '\\016', '\\017',\n"
- " '\\020', '\\021', '\\022', '\\023', '\\024', '\\025', '\\026', '\\027',\n"
- " '\\030', '\\031', '\\032', '\\033', '\\034', '\\035', '\\036', '\\037',\n"
- " '\\040', '\\041', '\\042', '\\043', '\\044', '\\045', '\\046', '\\047',\n"
- " '\\050', '\\051', '\\052', '\\053', '\\054', '\\055', '\\056', '\\057',\n"
- " '\\060', '\\061', '\\062', '\\063', '\\064', '\\065', '\\066', '\\067',\n"
- " '\\070', '\\071', '\\072', '\\073', '\\074', '\\075', '\\076', '\\077',\n"
- " '\\100', '\\141', '\\142', '\\143', '\\144', '\\145', '\\146', '\\147',\n"
- " '\\150', '\\151', '\\152', '\\153', '\\154', '\\155', '\\156', '\\157',\n"
- " '\\160', '\\161', '\\162', '\\163', '\\164', '\\165', '\\166', '\\167',\n"
- " '\\170', '\\171', '\\172', '\\133', '\\134', '\\135', '\\136', '\\137',\n"
- " '\\140', '\\141', '\\142', '\\143', '\\144', '\\145', '\\146', '\\147',\n"
- " '\\150', '\\151', '\\152', '\\153', '\\154', '\\155', '\\156', '\\157',\n"
- " '\\160', '\\161', '\\162', '\\163', '\\164', '\\165', '\\166', '\\167',\n"
- " '\\170', '\\171', '\\172', '\\173', '\\174', '\\175', '\\176', '\\177',\n"
- " '\\200', '\\201', '\\202', '\\203', '\\204', '\\205', '\\206', '\\207',\n"
- " '\\210', '\\211', '\\212', '\\213', '\\214', '\\215', '\\216', '\\217',\n"
- " '\\220', '\\221', '\\222', '\\223', '\\224', '\\225', '\\226', '\\227',\n"
- " '\\230', '\\231', '\\232', '\\233', '\\234', '\\235', '\\236', '\\237',\n"
- " '\\240', '\\241', '\\242', '\\243', '\\244', '\\245', '\\246', '\\247',\n"
- " '\\250', '\\251', '\\252', '\\253', '\\254', '\\255', '\\256', '\\257',\n"
- " '\\260', '\\261', '\\262', '\\263', '\\264', '\\265', '\\266', '\\267',\n"
- " '\\270', '\\271', '\\272', '\\273', '\\274', '\\275', '\\276', '\\277',\n"
- " '\\300', '\\341', '\\342', '\\343', '\\344', '\\345', '\\346', '\\347',\n"
- " '\\350', '\\351', '\\352', '\\353', '\\354', '\\355', '\\356', '\\357',\n"
- " '\\360', '\\361', '\\362', '\\363', '\\364', '\\365', '\\366', '\\367',\n"
- " '\\370', '\\371', '\\372', '\\333', '\\334', '\\335', '\\336', '\\337',\n"
- " '\\340', '\\341', '\\342', '\\343', '\\344', '\\345', '\\346', '\\347',\n"
- " '\\350', '\\351', '\\352', '\\353', '\\354', '\\355', '\\356', '\\357',\n"
- " '\\360', '\\361', '\\362', '\\363', '\\364', '\\365', '\\366', '\\367',\n"
- " '\\370', '\\371', '\\372', '\\373', '\\374', '\\375', '\\376', '\\377',\n};\n\nstatic int\n");
- if (option[COMP])
- {
- printf ("%s", option[ANSI]
- ? "strncasecmp (register char *s1, register char *s2, register int n)"
- : "strncasecmp (s1, s2, n)\n register char *s1, *s2;\n register int n;");
- printf ("\n{\n register char *cm = charmap;\n\n while (--n >= 0 && cm[*s1] == cm[*s2++])\n"
- " if (*s1++ == '\\0')\n return 0;\n"
- "\n return n < 0 ? 0 : cm[*s1] - cm[*--s2];\n}\n\n");
- }
- else
- {
- printf ("%s", option[ANSI]
- ? "strcasecmp (register char *s1, register char *s2)"
- : "strcasecmp (s1, s2)\n register char *s1, *s2;");
- printf ("\n{\n register char *cm = charmap;\n\n while (cm[*s1] == cm[*s2++])\n"
- " if (*s1++ == '\\0')\n return 0;\n"
- "\n return cm[*s1] - cm[*--s2];\n}\n\n");
- }
-}
-
-// Generates the hash function and the key word recognizer function
-// based upon the user's Options.
-
-void
-Key_List::output (void)
-{
- printf ("%s\n", include_src);
-
- if (option[TYPE] && !option[NOTYPE]) // Output type declaration now, reference it later on....
- printf ("%s;\n", array_type);
-
- output_min_max ();
-
- if (option[STRCASECMP])
- output_strcasecmp ();
- if (option[CPLUSPLUS])
- printf ("class %s\n{\nprivate:\n"
- " static unsigned int hash (const char *str, int len);\npublic:\n"
- " static %s%s%s (const char *str, int len);\n};\n\n",
- option.get_class_name (), option[CONST] ? "const " : "",
- return_type, option.get_function_name ());
-
- output_hash_function ();
-
- if (option[GLOBAL])
- if (option[SWITCH])
- {
- if (option[LENTABLE] && option[DUP])
- output_keylength_table ();
- if (option[POINTER] && option[TYPE])
- output_keyword_table ();
- }
- else
- {
- if (option[LENTABLE])
- output_keylength_table ();
- output_keyword_table ();
- output_lookup_array ();
- }
-
- if (option[GNU]) // Use the inline keyword to remove function overhead.
- printf ("#ifdef __GNUC__\ninline\n#endif\n");
-
- printf ("%s%s\n", option[CONST] ? "const " : "", return_type);
- if (option[CPLUSPLUS])
- printf ("%s::", option.get_class_name ());
-
- printf (option[ANSI]
- ? "%s (register const char *str, register int len)\n{\n"
- : "%s (str, len)\n register char *str;\n register unsigned int len;\n{\n",
- option.get_function_name ());
-
- if (option[ENUM] && !option[GLOBAL])
- printf (" enum\n {\n"
- " TOTAL_KEYWORDS = %d,\n"
- " MIN_WORD_LENGTH = %d,\n"
- " MAX_WORD_LENGTH = %d,\n"
- " MIN_HASH_VALUE = %d,\n"
- " MAX_HASH_VALUE = %d,\n"
- " HASH_VALUE_RANGE = %d,\n"
- " DUPLICATES = %d\n };\n\n",
- total_keys, min_key_len, max_key_len, min_hash_value,
- max_hash_value, max_hash_value - min_hash_value + 1,
- total_duplicates ? total_duplicates + 1 : 0);
- // Use the switch in place of lookup table.
- if (option[SWITCH])
- {
- if (!option[GLOBAL])
- {
- if (option[LENTABLE] && option[DUP])
- output_keylength_table ();
- if (option[POINTER] && option[TYPE])
- output_keyword_table ();
- }
- output_switch ();
- }
- // Use the lookup table, in place of switch.
- else
- {
- if (!option[GLOBAL])
- {
- if (option[LENTABLE])
- output_keylength_table ();
- output_keyword_table ();
- }
- if (!option[GLOBAL])
- output_lookup_array ();
- output_lookup_function ();
- }
-
- if (additional_code)
- {
- for (;;)
- {
- int c = getchar ();
-
- if (c == EOF)
- break;
- else
- putchar (c);
- }
- }
-
- fflush (stdout);
-}
-
-// Sorts the keys by hash value.
-
-void
-Key_List::sort (void)
-{
- hash_sort = 1;
- occurrence_sort = 0;
-
- head = merge_sort (head);
-}
-
-// Dumps the key list to stderr stream.
-
-void
-Key_List::dump ()
-{
- int field_width = option.get_max_keysig_size ();
-
- fprintf (stderr, "\nList contents are:\n(hash value, key length, index, %*s, keyword):\n",
- field_width, "char_set");
-
- for (List_Node *ptr = head; ptr; ptr = ptr->next)
- fprintf (stderr, "%11d,%11d,%6d, %*s, %s\n",
- ptr->hash_value, ptr->length, ptr->index,
- field_width, ptr->char_set, ptr->key);
-}
-
-// Simple-minded constructor action here...
-
-Key_List::Key_List (void)
-{
- total_keys = 1;
- max_key_len = INT_MIN;
- min_key_len = INT_MAX;
- return_type = default_return_type;
- array_type = struct_tag = default_array_type;
- head = 0;
- total_duplicates = 0;
- additional_code = 0;
-}
-
-// Returns the length of entire key list.
-
-int
-Key_List::keyword_list_length (void)
-{
- return list_len;
-}
-
-// Returns length of longest key read.
-
-int
-Key_List::max_key_length (void)
-{
- return max_key_len;
-}
-
diff --git a/apps/gperf/src/Key_List.h b/apps/gperf/src/Key_List.h
deleted file mode 100644
index 02eff21ef47..00000000000
--- a/apps/gperf/src/Key_List.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111,
-USA. */
-
-#if !defined (KEY_LIST_H)
-#define KEY_LIST_H
-
-#include "Options.h"
-#include "List_Node.h"
-
-class Key_List
-{
- // = TITLE
- // Data and function member declarations for the keyword list class.
- //
- // = DESCRIPTION
- // The key word list is a useful abstraction that keeps track of
- // various pieces of information that enable that fast generation of
- // the Gen_Perf.hash function. A Key_List is a singly-linked list
- // of List_Nodes.
-public:
- Key_List (void);
- ~Key_List (void);
- int keyword_list_length (void);
- int max_key_length (void);
- void reorder (void);
- void sort (void);
- void read_keys (void);
- void output (void);
-
- List_Node *head;
- // Points to the head of the linked list.
-
- int total_duplicates;
- // Total number of duplicate hash values.
-
-private:
- static int get_occurrence (List_Node *ptr);
- static int already_determined (List_Node *ptr);
- static void set_determined (List_Node *ptr);
-
- // @@ All of the following methods should be factored out and
- // replaced by the use of the Strategy/Bridge pattern so that we can
- // easily add new languages.
- void output_min_max (void);
- void output_switch (void);
- void output_keyword_table (void);
- void output_keylength_table (void);
- void output_hash_function (void);
- void output_lookup_function (void);
- void output_lookup_array (void);
- void output_strcasecmp (void);
- void set_output_types (void);
- void dump (void);
- char *get_array_type (void);
- char *save_include_src (void);
- char *get_special_input (char delimiter);
- List_Node *merge (List_Node *list1, List_Node *list2);
- List_Node *merge_sort (List_Node *head);
-
- char *array_type;
- // Pointer to the type for word list.
-
- char *return_type;
- // Pointer to return type for lookup function.
-
- char *struct_tag;
- // Shorthand for user-defined struct tag type.
-
- char *include_src;
- // C source code to be included verbatim.
-
- int max_key_len;
- // Maximum length of the longest keyword.
-
- int min_key_len;
- // Minimum length of the shortest keyword.
-
- int min_hash_value;
- // Minimum hash value for all keywords.
-
- int max_hash_value;
- // Maximum hash value for all keywords.
-
- int occurrence_sort;
- // True if sorting by occurrence.
-
- int hash_sort;
- // True if sorting by hash value.
-
- int additional_code;
- // True if any additional C code is included.
-
- int list_len;
- // Length of head's Key_List, not counting duplicates.
-
- int total_keys;
- // Total number of keys, counting duplicates.
-};
-
-#endif /* KEY_LIST_H */
diff --git a/apps/gperf/src/List_Node.cpp b/apps/gperf/src/List_Node.cpp
deleted file mode 100644
index 245a9dec6eb..00000000000
--- a/apps/gperf/src/List_Node.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-// $Id$
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111,
-USA. */
-
-#include "Vectors.h"
-#include "List_Node.h"
-
-// Defined as a macro in string.h on some systems, which causes
-// conflicts.
-#undef index
-
-// Sorts the key set alphabetically to speed up subsequent operation
-// Uses insertion sort since the set is probably quite small.
-
-inline void
-List_Node::set_sort (char *base, int len)
-{
- int i, j;
-
- for (i = 0, j = len - 1; i < j; i++)
- {
- char curr, tmp;
-
- for (curr = i + 1, tmp = base[curr];
- curr > 0 && tmp < base[curr-1];
- curr--)
- base[curr] = base[curr - 1];
-
- base[curr] = tmp;
-
- }
-}
-
-// Initializes a List_Node. This requires obtaining memory for the
-// CHAR_SET initializing them using the information stored in the
-// KEY_POSITIONS array in Options, and checking for simple errors.
-// It's important to note that KEY and REST are both pointers to the
-// different offsets into the same block of dynamic memory pointed to
-// by parameter K. The data member REST is used to store any
-// additional fields of the input file (it is set to the "" string if
-// Option[TYPE] is not enabled). This is useful if the user wishes to
-// incorporate a lookup structure, rather than just an array of keys.
-// Finally, KEY_NUMBER contains a count of the total number of keys
-// seen so far. This is used to initialize the INDEX field to some
-// useful value.
-
-List_Node::List_Node (char *k, int len)
- : key (k),
- next (0),
- index (0),
- length (len),
- link (0),
- rest (option[TYPE] ? k + len + 1 : "")
-{
- char *ptr = new char[(option[ALLCHARS] ? len : option.get_max_keysig_size ()) + 1];
- char_set = ptr;
- k[len] = '\0'; // Null terminate KEY to separate it from REST.
-
- // Lower case if STRCASECMP option is enabled.
- if (option[STRCASECMP])
- for (char *p = k; *p; p++)
- if (isupper (*p))
- *p = tolower (*p);
-
- if (option[ALLCHARS]) // Use all the character position in the KEY.
- for (; *k; k++, ptr++)
- ++Vectors::occurrences[*ptr = *k];
- else // Only use those character positions specified by the user.
- {
- int i;
-
- // Iterate thru the list of key_positions, initializing
- // occurrences table and char_set (via char * pointer ptr).
-
- for (option.reset (); (i = option.get ()) != EOS; )
- {
- if (i == WORD_END) // Special notation for last KEY position, i.e. '$'.
- *ptr = key[len - 1];
- else if (i <= len) // Within range of KEY length, so we'll keep it.
- *ptr = key[i - 1];
- else // Out of range of KEY length, so we'll just skip it.
- continue;
- ++Vectors::occurrences[*ptr++];
- }
-
- // Didn't get any hits and user doesn't want to consider the
- // keylength, so there are essentially no usable hash positions!
- if (ptr == char_set && option[NOLENGTH])
- ACE_ERROR ((LM_ERROR,
- "Can't hash keyword %s with chosen key positions.\n%a",
- key,
- 1));
- }
- *ptr = '\0'; // Terminate this bastard....
- // Sort the KEY_SET items alphabetically.
- set_sort (char_set, ptr - char_set);
-}
diff --git a/apps/gperf/src/List_Node.h b/apps/gperf/src/List_Node.h
deleted file mode 100644
index 58b932e0739..00000000000
--- a/apps/gperf/src/List_Node.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111,
-USA. */
-
-#if !defined (LIST_NODE_H)
-#define LIST_NODE_H
-
-#include "Options.h"
-
-class List_Node
-{
- // = TITLE
- // Data and function members for defining values and operations of
- // a list node.
-public:
- List_Node (char *key, int len);
- static void set_sort (char *base, int len);
-
- List_Node *link;
- // TRUE if key has an identical KEY_SET as another key.
-
- List_Node *next;
- // Points to next element on the list.
-
- char *key;
- // Each keyword string stored here.
-
- char *rest;
- // Additional information for building hash function.
-
- char *char_set;
- // Set of characters to hash, specified by user.
-
- int length;
- // Length of the key.
-
- int hash_value;
- // Hash value for the key.
-
- int occurrence;
- // A metric for frequency of key set occurrences.
-
- int index;
- // Position of this node relative to other nodes.
-};
-
-#endif /* LIST_NODE_H */
diff --git a/apps/gperf/src/Makefile b/apps/gperf/src/Makefile
deleted file mode 100644
index 2af2571b63c..00000000000
--- a/apps/gperf/src/Makefile
+++ /dev/null
@@ -1,155 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for GPERF release
-#----------------------------------------------------------------------------
-
-BIN = gperf
-LIB = libGperf.a
-
-FILES = new \
- Options \
- Iterator \
- Gen_Perf \
- Key_List \
- List_Node \
- Hash_Table \
- Bool_Array \
- Vectors \
- Version
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(addsuffix .o,$(FILES))
-
-LDLIBS = -lGperf
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-BUILD = $(VLIB) $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/new.o .shobj/new.so: new.cpp Options.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i
-.obj/Options.o .shobj/Options.so: Options.cpp \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Options.h Iterator.h
-.obj/Iterator.o .shobj/Iterator.so: Iterator.cpp Iterator.h Options.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i
-.obj/Gen_Perf.o .shobj/Gen_Perf.so: Gen_Perf.cpp Gen_Perf.h Options.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Key_List.h List_Node.h Bool_Array.h
-.obj/Key_List.o .shobj/Key_List.so: Key_List.cpp \
- $(ACE_ROOT)/ace/Read_Buffer.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Set.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Read_Buffer.i \
- Hash_Table.h Options.h List_Node.h Vectors.h Key_List.h
-.obj/List_Node.o .shobj/List_Node.so: List_Node.cpp Vectors.h List_Node.h Options.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i
-.obj/Hash_Table.o .shobj/Hash_Table.so: Hash_Table.cpp \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Hash_Table.h Options.h List_Node.h
-.obj/Bool_Array.o .shobj/Bool_Array.so: Bool_Array.cpp Bool_Array.h Options.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i
-.obj/Version.o .shobj/Version.so: Version.cpp
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/gperf/src/Options.cpp b/apps/gperf/src/Options.cpp
deleted file mode 100644
index 1642d2a6fb0..00000000000
--- a/apps/gperf/src/Options.cpp
+++ /dev/null
@@ -1,660 +0,0 @@
-// $Id$
-
-// Handles parsing the Options provided to the user.
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111,
-USA. */
-
-#include "ace/Get_Opt.h"
-#include "Options.h"
-#include "Iterator.h"
-
-// Global option coordinator for the entire program.
-Options option;
-
-// Current program version.
-extern char *version_string;
-
-// Size to jump on a collision.
-static const int DEFAULT_JUMP_VALUE = 5;
-
-// Default name for generated lookup function.
-static const char *const DEFAULT_NAME = "in_word_set";
-
-// Default name for the key component.
-static const char *const DEFAULT_KEY = "name";
-
-// Default name for the generated class.
-static const char *const DEFAULT_CLASS_NAME = "Perfect_Hash";
-
-// Default name for generated hash function.
-static const char *const DEFAULT_HASH_NAME = "hash";
-
-// Default delimiters that separate keywords from their attributes.
-static const char *const DEFAULT_DELIMITERS = ",\n";
-
-int Options::option_word;
-int Options::total_switches;
-int Options::total_keysig_size;
-int Options::size;
-int Options::key_pos;
-int Options::jump;
-int Options::initial_asso_value;
-int Options::argument_count;
-int Options::iterations;
-char **Options::argument_vector;
-const char *Options::function_name;
-const char *Options::key_name;
-const char *Options::class_name;
-const char *Options::hash_name;
-const char *Options::delimiters;
-char Options::key_positions[MAX_KEY_POS];
-
-// Prints program usage to standard error stream.
-
-void
-Options::usage (void)
-{
- ACE_ERROR ((LM_ERROR,
- "Usage: %n [-acCdDef[num]gGhH<hashname>i<init>Ijk<keys>K<keyname>lL<language>nN<function name>oOprs<size>S<switches>tTvZ<class name>].\n"
- "(type %n -h for help)\n"));
-}
-
-// Output command-line Options.
-
-void
-Options::print_options (void)
-{
- int i;
-
- printf ("/* Command-line: ");
-
- for (i = 0; i < argument_count; i++)
- printf ("%s ", argument_vector[i]);
-
- printf (" */");
-}
-
-// Sorts the key positions *IN REVERSE ORDER!!* This makes further
-// routines more efficient. Especially when generating code. Uses a
-// simple Insertion Sort since the set is probably ordered. Returns 1
-// if there are no duplicates, 0 otherwise.
-
-int
-Options::key_sort (char *base, int len)
-{
- int i, j;
-
- for (i = 0, j = len - 1; i < j; i++)
- {
- int curr, tmp;
-
- for (curr = i + 1, tmp = base[curr];
- curr > 0 && tmp >= base[curr - 1];
- curr--)
- if ((base[curr] = base[curr - 1]) == tmp) // oh no, a duplicate!!!
- return 0;
-
- base[curr] = tmp;
- }
-
- return 1;
-}
-
-// Sets the default Options.
-
-Options::Options (void)
-{
- key_positions[0] = WORD_START;
- key_positions[1] = WORD_END;
- key_positions[2] = EOS;
- total_keysig_size = 2;
- delimiters = DEFAULT_DELIMITERS;
- jump = DEFAULT_JUMP_VALUE;
- option_word = DEFAULTCHARS | C;
- function_name = DEFAULT_NAME;
- key_name = DEFAULT_KEY;
- hash_name = DEFAULT_HASH_NAME;
- class_name = DEFAULT_CLASS_NAME;
- total_switches = size = 1;
- initial_asso_value = iterations = 0;
-}
-
-// Dumps option status when debug is set.
-
-Options::~Options (void)
-{
- if (ACE_BIT_ENABLED (option_word, DEBUG))
- {
- char *ptr;
-
- ACE_OS::fprintf (stderr, "\ndumping Options:\nDEBUG is.......: %s\nORDER is.......: %s"
- "\nANSI is........: %s\nTYPE is........: %s\nGNU is.........: %s"
- "\nRANDOM is......: %s\nDEFAULTCHARS is: %s\nSWITCH is......: %s"
- "\nPOINTER is.....: %s\nNOLENGTH is....: %s\nLENTABLE is....: %s"
- "\nDUP is.........: %s\nFAST is........: %s\nCOMP is.....: %s"
- "\nNOTYPE is......: %s\nGLOBAL is......: %s\nCONST is....: %s"
- "\nCPLUSPLUS is...: %s\nC is...........: %s\nENUM is.....: %s"
- "\nSTRCASECMP is...: %s\nOPTIMIZE is...........: %s"
- "\niterations = %d\nlookup function name = %s\nhash function name = %s"
- "\nkey name = %s\njump value = %d\nmax associcated value = %d"
- "\ninitial associated value = %d\ndelimiters = %s\nnumber of switch statements = %d\n",
- ACE_BIT_ENABLED (option_word, DEBUG) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, ORDER) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, ANSI) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, TYPE) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, GNU) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, RANDOM) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, DEFAULTCHARS) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, SWITCH) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, POINTER) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, NOLENGTH) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, LENTABLE) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, DUP) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, FAST) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, COMP) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, NOTYPE) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, GLOBAL) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, CONST) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, CPLUSPLUS) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, C) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, ENUM) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, STRCASECMP) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word, OPTIMIZE) ? "enabled" : "disabled",
- iterations, function_name, hash_name, key_name, jump, size - 1,
- initial_asso_value, delimiters, total_switches);
- if (ACE_BIT_ENABLED (option_word, ALLCHARS))
- ACE_OS::fprintf (stderr, "all characters are used in the hash function\n");
-
- ACE_OS::fprintf (stderr, "maximum keysig size = %d\nkey positions are: \n",
- total_keysig_size);
-
- for (ptr = key_positions; *ptr != EOS; ptr++)
- if (*ptr == WORD_END)
- ACE_OS::fprintf (stderr, "$\n");
- else
- ACE_OS::fprintf (stderr, "%d\n", *ptr);
-
- ACE_OS::fprintf (stderr, "finished dumping Options\n");
- }
-}
-
-// Parses the command line Options and sets appropriate flags in option_word.
-
-void
-Options::operator() (int argc, char *argv[])
-{
- ACE_LOG_MSG->open (argv[0]);
-
- ACE_Get_Opt getopt (argc, argv, "adcCDe:Ef:gGhH:i:Ij:k:K:lL:nN:oOprs:S:tTvZ:");
- int option_char;
-
- argument_count = argc;
- argument_vector = argv;
-
- while ((option_char = getopt ()) != -1)
- {
- switch (option_char)
- {
- case 'a': // Generated coded uses the ANSI prototype format.
- {
- ACE_SET_BITS (option_word, ANSI);
- break;
- }
- case 'c': // Generate strncmp rather than strcmp.
- {
- ACE_SET_BITS (option_word, COMP);
- break;
- }
- case 'C': // Make the generated tables readonly (const).
- {
- ACE_SET_BITS (option_word, CONST);
- break;
- }
- case 'd': // Enable debugging option.
- {
- ACE_SET_BITS (option_word, DEBUG);
- ACE_ERROR ((LM_ERROR, "Starting program %n, version %s, with debuggin on.\n",
- version_string));
- break;
- }
- case 'D': // Enable duplicate option.
- {
- ACE_SET_BITS (option_word, DUP);
- break;
- }
- case 'e': // Allows user to provide keyword/attribute separator
- {
- option.delimiters = getopt.optarg;
- break;
- }
- case 'E':
- {
- ACE_SET_BITS (option_word, ENUM);
- break;
- }
- case 'f': // Generate the hash table ``fast.''
- {
- ACE_SET_BITS (option_word, FAST);
- if ((iterations = atoi (getopt.optarg)) < 0)
- {
- ACE_ERROR ((LM_ERROR, "iterations value must not be negative, assuming 0\n"));
- iterations = 0;
- }
- break;
- }
- case 'g': // Use the ``inline'' keyword for generated sub-routines.
- {
- ACE_SET_BITS (option_word, GNU);
- break;
- }
- case 'G': // Make the keyword table a global variable.
- {
- ACE_SET_BITS (option_word, GLOBAL);
- break;
- }
- case 'h': // Displays a list of helpful Options to the user.
- {
- ACE_OS::fprintf (stderr,
- "-a\tGenerate ANSI standard C output code, i.e., function prototypes.\n"
- "-c\tGenerate comparison code using strncmp rather than strcmp.\n"
- "-C\tMake the contents of generated lookup tables constant, i.e., readonly.\n"
- "-d\tEnables the debugging option (produces verbose output to the standard error).\n"
- "-D\tHandle keywords that hash to duplicate values. This is useful\n"
- "\tfor certain highly redundant keyword sets. It enables the -S option.\n"
- "-e\tAllow user to provide a string containing delimiters used to separate\n"
- "\tkeywords from their attributes. Default is \",\\n\"\n"
- "-E\tDefine constant values using an enum local to the lookup function\n"
- "\trather than with defines\n"
- "-f\tGenerate the gen-perf.hash function ``fast.'' This decreases GPERF's\n"
- "\trunning time at the cost of minimizing generated table-size.\n"
- "\tThe numeric argument represents the number of times to iterate when\n"
- "\tresolving a collision. `0' means ``iterate by the number of keywords.''\n"
- "-g\tAssume a GNU compiler, e.g., g++ or gcc. This makes all generated\n"
- "\troutines use the ``inline'' keyword to remove cost of function calls.\n"
- "-G\tGenerate the static table of keywords as a static global variable,\n"
- "\trather than hiding it inside of the lookup function (which is the\n"
- "\tdefault behavior).\n"
- "-h\tPrints this mesage.\n"
- "-H\tAllow user to specify name of generated hash function. Default\n"
- "\tis `hash'.\n"
- "-i\tProvide an initial value for the associate values array. Default is 0.\n"
- "-I\tGenerate comparison code using case insensitive string comparison, e.g.,\n"
- "\tstrncasecmp or strcasecmp.\n"
- "\tSetting this value larger helps inflate the size of the final table.\n"
- "-j\tAffects the ``jump value,'' i.e., how far to advance the associated\n"
- "\tcharacter value upon collisions. Must be an odd number, default is %d.\n"
- "-k\tAllows selection of the key positions used in the hash function.\n"
- "\tThe allowable choices range between 1-%d, inclusive. The positions\n"
- "\tare separated by commas, ranges may be used, and key positions may\n"
- "\toccur in any order. Also, the meta-character '*' causes the generated\n"
- "\thash function to consider ALL key positions, and $ indicates the\n"
- "\t``final character'' of a key, e.g., $,1,2,4,6-10.\n"
- "-K\tAllow use to select name of the keyword component in the keyword structure.\n"
- "-l\tCompare key lengths before trying a string comparison. This helps\n"
- "\tcut down on the number of string comparisons made during the lookup.\n"
- "-L\tGenerates code in the language specified by the option's argument. Languages\n"
- "\thandled are currently C++ and C. The default is C.\n"
- "-n\tDo not include the length of the keyword when computing the hash function\n"
- "-N\tAllow user to specify name of generated lookup function. Default\n"
- "\tname is `in_word_set.'\n"
- "-o\tReorders input keys by frequency of occurrence of the key sets.\n"
- "\tThis should decrease the search time dramatically.\n"
- "-O\tOptimize the generated lookup function by assuming that all input keywords \n"
- "\tare members of the keyset from the keyfile.\n"
- "-p\tChanges the return value of the generated function ``in_word_set''\n"
- "\tfrom its default boolean value (i.e., 0 or 1), to type ``pointer\n"
- "\tto wordlist array'' This is most useful when the -t option, allowing\n"
- "\tuser-defined structs, is used.\n"
- "-r\tUtilizes randomness to initialize the associated values table.\n"
- "-s\tAffects the size of the generated hash table. The numeric argument\n"
- "\tfor this option indicates ``how many times larger or smaller'' the associated\n"
- "\tvalue range should be, in relationship to the number of keys, e.g. a value of 3\n"
- "\tmeans ``allow the maximum associated value to be about 3 times larger than the\n"
- "\tnumber of input keys.'' Conversely, a value of -3 means ``make the maximum\n"
- "\tassociated value about 3 times smaller than the number of input keys.\n"
- "\tA larger table should decrease the time required for an unsuccessful search,\n"
- "\tat the expense of extra table space. Default value is 1.\n"
- "-S\tCauses the generated C code to use a switch statement scheme, rather\n"
- "\tthan an array lookup table. This can lead to a reduction in both\n"
- "\ttime and space requirements for some keyfiles. The argument to\n"
- "\tthis option determines how many switch statements are generated.\n"
- "\tA value of 1 generates 1 switch containing all the elements, a value of 2\n"
- "\tgenerates 2 tables with 1/2 the elements in each table, etc. This\n"
- "\tis useful since many C compilers cannot correctly generate code for\n"
- "\tlarge switch statements.\n"
- "-t\tAllows the user to include a structured type declaration for \n"
- "\tgenerated code. Any text before %%%% is consider part of the type\n"
- "\tdeclaration. Key words and additional fields may follow this, one\n"
- "\tgroup of fields per line.\n"
- "-T\tPrevents the transfer of the type declaration to the output file.\n"
- "\tUse this option if the type is already defined elsewhere.\n"
- "-v\tPrints out the current version number\n"
- "-Z\tAllow user to specify name of generated C++ class. Default\n"
- "\tname is `Perfect_Hash.'\n%e",
- DEFAULT_JUMP_VALUE,
- (MAX_KEY_POS - 1),
- usage);
- ACE_OS::exit (1);
- }
- case 'H': // Sets the name for the hash function.
- {
- hash_name = getopt.optarg;
- break;
- }
- case 'i': // Sets the initial value for the associated values array.
- {
- if ((initial_asso_value = atoi (getopt.optarg)) < 0)
- ACE_ERROR ((LM_ERROR, "Initial value %d should be non-zero, ignoring and continuing.\n", initial_asso_value));
- if (option[RANDOM])
- ACE_ERROR ((LM_ERROR, "warning, -r option superceeds -i, ignoring -i option and continuing\n"));
- break;
- }
- case 'I':
- {
- ACE_SET_BITS (option_word, STRCASECMP);
- break;
- }
- case 'j': // Sets the jump value, must be odd for later algorithms.
- {
- if ((jump = atoi (getopt.optarg)) < 0)
- ACE_ERROR ((LM_ERROR, "Jump value %d must be a positive number.\n%e%a", jump, usage, 1));
- else if (jump && ACE_EVEN (jump))
- ACE_ERROR ((LM_ERROR, "Jump value %d should be odd, adding 1 and continuing...\n", jump++));
- break;
- }
- case 'k': // Sets key positions used for hash function.
- {
- const int BAD_VALUE = -1;
- int value;
- Iterator expand (getopt.optarg, 1, MAX_KEY_POS - 1, WORD_END, BAD_VALUE, EOS);
-
- if (*getopt.optarg == '*') // Use all the characters for hashing!!!!
- option_word = (option_word & ~DEFAULTCHARS) | ALLCHARS;
- else
- {
- char *l_key_pos;
-
- for (l_key_pos = key_positions; (value = expand ()) != EOS; l_key_pos++)
- if (value == BAD_VALUE)
- ACE_ERROR ((LM_ERROR, "Illegal key value or range, use 1,2,3-%d,'$' or '*'.\n%e%a",
- MAX_KEY_POS - 1, usage, 1));
- else
- *l_key_pos = value;;
-
- *l_key_pos = EOS;
-
- if (! (total_keysig_size = (l_key_pos - key_positions)))
- ACE_ERROR ((LM_ERROR, "No keys selected.\n%e%a", usage, 1));
- else if (! key_sort (key_positions, total_keysig_size))
- ACE_ERROR ((LM_ERROR, "Duplicate keys selected\n%e%a", usage, 1));
-
- if (total_keysig_size != 2
- || (key_positions[0] != 1 || key_positions[1] != WORD_END))
- option_word &= ~DEFAULTCHARS;
- }
- break;
- }
- case 'K': // Make this the keyname for the keyword component field.
- {
- key_name = getopt.optarg;
- break;
- }
- case 'l': // Create length table to avoid extra string compares.
- {
- ACE_SET_BITS (option_word, LENTABLE);
- break;
- }
- case 'L': // Deal with different generated languages.
- {
- option_word &= ~C;
- if (!strcmp (getopt.optarg, "C++"))
- ACE_SET_BITS (option_word, (CPLUSPLUS | ANSI));
- else if (!strcmp (getopt.optarg, "C"))
- ACE_SET_BITS (option_word, C);
- else
- {
- ACE_ERROR ((LM_ERROR, "unsupported language option %s, defaulting to C\n", getopt.optarg));
- ACE_SET_BITS (option_word, C);
- }
- break;
- }
- case 'n': // Don't include the length when computing hash function.
- {
- ACE_SET_BITS (option_word, NOLENGTH);
- break;
- }
- case 'N': // Make generated lookup function name be optarg
- {
- function_name = getopt.optarg;
- break;
- }
- case 'o': // Order input by frequency of key set occurrence.
- {
- ACE_SET_BITS (option_word, ORDER);
- break;
- }
- case 'O':
- {
- ACE_SET_BITS (option_word, OPTIMIZE);
- break;
- }
- case 'p': // Generated lookup function now a pointer instead of int.
- {
- ACE_SET_BITS (option_word, POINTER);
- break;
- }
- case 'r': // Utilize randomness to initialize the associated values table.
- {
- ACE_SET_BITS (option_word, RANDOM);
- if (option.initial_asso_value != 0)
- ACE_ERROR ((LM_ERROR, "warning, -r option superceeds -i, disabling -i option and continuing\n"));
- break;
- }
- case 's': // Range of associated values, determines size of final table.
- {
- if (abs (size = atoi (getopt.optarg)) > 50)
- ACE_ERROR ((LM_ERROR, "%d is excessive, did you really mean this?! (type %n -h for help)\n", size));
- break;
- }
- case 'S': // Generate switch statement output, rather than lookup table.
- {
- ACE_SET_BITS (option_word, SWITCH);
- if ((option.total_switches = atoi (getopt.optarg)) <= 0)
- ACE_ERROR ((LM_ERROR, "number of switches %s must be a positive number\n%e%a", getopt.optarg, usage, 1));
- break;
- }
- case 't': // Enable the TYPE mode, allowing arbitrary user structures.
- {
- ACE_SET_BITS (option_word, TYPE);
- break;
- }
- case 'T': // Don't print structure definition.
- {
- ACE_SET_BITS (option_word, NOTYPE);
- break;
- }
- case 'v': // Print out the version and quit.
- ACE_ERROR ((LM_ERROR, "%n: version %s\n%e\n%a", version_string, usage, 1));
- case 'Z': // Set the class name.
- {
- class_name = getopt.optarg;
- break;
- }
- default:
- ACE_ERROR ((LM_ERROR, "%e%a", usage, 1));
- }
-
- }
-
- if (argv[getopt.optind] && ! freopen (argv[getopt.optind], "r", stdin))
- ACE_ERROR ((LM_ERROR, "Cannot open keyword file %p\n%e%a", argv[getopt.optind], usage, 1));
-
- if (++getopt.optind < argc)
- ACE_ERROR ((LM_ERROR, "Extra trailing arguments to %n.\n%e%a", usage, 1));
-}
-
-// True if option enable, else false.
-
-int
-Options::operator[] (Option_Type option)
-{
- return option_word & option;
-}
-
-// Enables option OPT.
-
-void
-Options::operator = (enum Option_Type opt)
-{
- ACE_SET_BITS (option_word, opt);
-}
-
-// Disables option OPT.
-
-void
-Options::operator != (enum Option_Type opt)
-{
- ACE_CLR_BITS (option_word, opt);
-}
-
-// Initializes the key Iterator.
-
-void
-Options::reset (void)
-{
- key_pos = 0;
-}
-
-// Returns current key_position and advanced index.
-
-int
-Options::get (void)
-{
- return key_positions[key_pos++];
-}
-
-// Sets the size of the table size.
-
-void
-Options::set_asso_max (int r)
-{
- size = r;
-}
-
-// Returns the size of the table size.
-
-int
-Options::get_asso_max (void)
-{
- return size;
-}
-
-// Returns total distinct key positions.
-
-int
-Options::get_max_keysig_size (void)
-{
- return total_keysig_size;
-}
-
-// Sets total distinct key positions.
-
-void
-Options::set_keysig_size (int a_size)
-{
- total_keysig_size = a_size;
-}
-
-// Returns the jump value.
-
-int
-Options::get_jump (void)
-{
- return jump;
-}
-
-// Returns the generated function name.
-
-const char *
-Options::get_function_name (void)
-{
- return function_name;
-}
-
-// Returns the keyword key name.
-
-const char *
-Options::get_key_name (void)
-{
- return key_name;
-}
-
-// Returns the hash function name.
-
-const char *
-Options::get_hash_name (void)
-{
- return hash_name;
-}
-
-// Returns the generated class name.
-
-const char *
-Options::get_class_name (void)
-{
- return class_name;
-}
-
-// Returns the initial associated character value.
-
-int
-Options::initial_value (void)
-{
- return initial_asso_value;
-}
-
-// Returns the iterations value.
-
-int
-Options::get_iterations (void)
-{
- return iterations;
-}
-
-// Returns the string used to delimit keywords from other attributes.
-
-const char *
-Options::get_delimiter (void)
-{
- return delimiters;
-}
-
-// Gets the total number of switch statements to generate.
-
-int
-Options::get_total_switches (void)
-{
- return total_switches;
-}
-
-
-
-
diff --git a/apps/gperf/src/Options.h b/apps/gperf/src/Options.h
deleted file mode 100644
index 9ea3634683c..00000000000
--- a/apps/gperf/src/Options.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// Handles parsing the Options provided to the user.
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111,
-USA. */
-
-#if !defined (OPTIONS_H)
-#define OPTIONS_H
-
-#include "ace/Log_Msg.h"
-
-// Enumerate the potential debugging Options.
-
-enum Option_Type
-{
- DEBUG = 01, // Enable debugging (prints diagnostics to stderr).
- ORDER = 02, // Apply ordering heuristic to speed-up search time.
- ANSI = 04, // Generate ANSI prototypes.
- ALLCHARS = 010, // Use all characters in hash function.
- GNU = 020, // Assume GNU extensions (primarily function inline).
- TYPE = 040, // Handle user-defined type structured keyword input.
- RANDOM = 0100, // Randomly initialize the associated values table.
- DEFAULTCHARS = 0200, // Make default char positions be 1,$ (end of keyword).
- SWITCH = 0400, // Generate switch output to save space.
- POINTER = 01000, // Have in_word_set function return pointer, not boolean.
- NOLENGTH = 02000, // Don't include keyword length in hash computations.
- LENTABLE = 04000, // Generate a length table for string comparison.
- DUP = 010000, // Handle duplicate hash values for keywords.
- FAST = 020000, // Generate the hash function ``fast.''
- NOTYPE = 040000, // Don't include user-defined type definition in output -- it's already defined elsewhere.
- COMP = 0100000, // Generate strncmp rather than strcmp.
- GLOBAL = 0200000, // Make the keyword table a global variable.
- CONST = 0400000, // Make the generated tables readonly (const).
- CPLUSPLUS = 01000000, // Generate C++ code.
- C = 02000000, // Generate C code.
- ENUM = 04000000, // Use enum for constants.
- STRCASECMP = 010000000, // Use the case insensitive comparison.
- OPTIMIZE = 020000000, // Assume all input keywords are in the keyset.
- ADA = 040000000 // Generate Ada code.
-};
-
-// Define some useful constants (these don't really belong here, but
-// I'm not sure where else to put them!). These should be consts, but
-// g++ doesn't seem to do the right thing with them at the
-// moment... ;-(
-
-enum
-{
- MAX_KEY_POS = 128 - 1, // Max size of each word's key set.
- WORD_START = 1, // Signals the start of a word.
- WORD_END = 0, // Signals the end of a word.
- EOS = MAX_KEY_POS // Signals end of the key list.
-};
-
-// @@ The Options class should be changed to use the Singleton pattern.
-class Options
-{
- // = TITLE
- // This class provides a uniform interface to the various options
- // available to a user of the gperf hash function generator.
- // = DESCRIPTION
- // In addition to the run-time options, found in the <Option_Type>
- // there is also the hash table Size and the Keys to be used in
- // the hashing. The overall design of this module was an
- // experiment in using C++ classes as a mechanism to enhance
- // centralization of option and and error handling.
-public:
- Options (void);
- ~Options (void);
- int operator[] (Option_Type option);
- void operator() (int argc, char *argv[]);
- void operator= (enum Option_Type);
- void operator!= (enum Option_Type);
- static void print_options (void);
- static void set_asso_max (int r);
- static int get_asso_max (void);
- static void reset (void);
- static int get (void);
- static int get_iterations (void);
- static int get_max_keysig_size (void);
- static void set_keysig_size (int);
- static int get_jump (void);
- static int initial_value (void);
- static int get_total_switches (void);
- static const char *get_function_name (void);
- static const char *get_key_name (void);
- static const char *get_class_name (void);
- static const char *get_hash_name (void);
- static const char *get_delimiter (void);
-
-private:
- static int option_word;
- // Holds the user-specified Options.
-
- static int total_switches;
- // Number of switch statements to generate.
-
- static int total_keysig_size;
- // Total number of distinct key_positions.
-
- static int size;
- // Range of the hash table.
-
- static int key_pos;
- // Tracks current key position for Iterator.
-
- static int jump;
- // Jump length when trying alternative values.
-
- static int initial_asso_value;
- // Initial value for asso_values table.
-
- static int argument_count;
- // Records count of command-line arguments.
-
- static int iterations;
- // Amount to iterate when a collision occurs.
-
- static char **argument_vector;
- // Stores a pointer to command-line vector.
-
- static const char *function_name;
- // Names used for generated lookup function.
-
- static const char *key_name;
- // Name used for keyword key.
-
- static const char *class_name;
- // Name used for generated C++ class.
-
- static const char *hash_name;
- // Name used for generated hash function.
-
- static const char *delimiters;
- // Separates keywords from other attributes.
-
- static char key_positions[MAX_KEY_POS];
- // Contains user-specified key choices.
-
- static int key_sort (char *base, int len);
- // Sorts key positions in REVERSE order.
-
- static void usage (void);
- // Prints proper program usage.
-};
-
-// Global option coordinator for the entire program.
-extern Options option;
-
-// Set to 1 if your want to stack-allocate some large arrays.
-#if !defined (LARGE_STACK_ARRAYS)
-#define LARGE_STACK_ARRAYS 0
-#endif /* LARGE_STACK_ARRAYS */
-
-#endif /* OPTIONS_H */
diff --git a/apps/gperf/src/Vectors.cpp b/apps/gperf/src/Vectors.cpp
deleted file mode 100644
index 409a8708e85..00000000000
--- a/apps/gperf/src/Vectors.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-/* This may look like C code, but it is really -*- C++ -*- */
-// $Id$
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111,
-USA. */
-
-#include "Vectors.h"
-
-// Counts occurrences of each key set character.
-int Vectors::occurrences[ALPHA_SIZE];
-
-// Value associated with each character.
-int Vectors::asso_values[ALPHA_SIZE];
diff --git a/apps/gperf/src/Vectors.h b/apps/gperf/src/Vectors.h
deleted file mode 100644
index 96530299aa9..00000000000
--- a/apps/gperf/src/Vectors.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include <stdio.h>
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111,
-USA. */
-
-#if !defined (VECTORS_H)
-#define VECTORS_H
-
-static const int ALPHA_SIZE = 128;
-
-class Vectors
-{
- // = TITLE
- // Static class data members that are shared between several
- // classes via inheritance.
-public:
- static int occurrences[ALPHA_SIZE];
- // Counts occurrences of each key set character.
-
- static int asso_values[ALPHA_SIZE];
- // Value associated with each character.
-};
-
-#endif /* VECTORS_H */
diff --git a/apps/gperf/src/Version.cpp b/apps/gperf/src/Version.cpp
deleted file mode 100644
index ffa1e93397e..00000000000
--- a/apps/gperf/src/Version.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// $Id$
-// Current program version number.
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111,
-USA. */
-
-char *version_string = "2.6 (GNU C++ version)";
diff --git a/apps/gperf/src/gperf.cpp b/apps/gperf/src/gperf.cpp
deleted file mode 100644
index 7fbe88fc423..00000000000
--- a/apps/gperf/src/gperf.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-// $Id$
-
-// Driver program for the Gen_Perf hash function generator
-
-/* Copyright (C) 1989 Free Software Foundation, Inc. written by
- Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111,
-USA. */
-
-// Simple driver program for the Gen_Perf.hash function generator.
-// All the hard work is done in class Gen_Perf and its class methods.
-
-#include "Options.h"
-#include "Gen_Perf.h"
-
-int
-main (int argc, char *argv[])
-{
- struct tm *tm;
- time_t clock;
-
- time (&clock);
- tm = localtime (&clock);
- ACE_OS::printf ("/* starting time is %d:%02d:%02d */\n",
- tm->tm_hour,
- tm->tm_min,
- tm->tm_sec);
-
-#if defined (RLIMIT_STACK) && defined (LARGE_STACK_ARRAYS)
- // Get rid of any avoidable limit on stack size.
- {
- struct rlimit rlim;
-
- // Set the stack limit huge so that alloca does not fail.
- ACE_OS::getrlimit (RLIMIT_STACK, &rlim);
- rlim.rlim_cur = rlim.rlim_max;
- ACE_OS::setrlimit (RLIMIT_STACK, &rlim);
- }
-#endif /* RLIMIT_STACK && LARGE_STACK_ARRAYS */
-
- // Sets the Options.
- option (argc, argv);
-
- // Initializes the key word list.
- Gen_Perf table;
-
- // Generates and prints the Gen_Perf hash table. Don't use exit
- // here, it skips the destructors.
- int status = table.generate ();
-
- time (&clock);
- tm = localtime (&clock);
-
- ACE_OS::printf ("/* ending time is %d:%02d:%02d */\n",
- tm->tm_hour,
- tm->tm_min,
- tm->tm_sec);
-
- return status;
-}
diff --git a/apps/gperf/src/new.cpp b/apps/gperf/src/new.cpp
deleted file mode 100644
index 14753699491..00000000000
--- a/apps/gperf/src/new.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-// $Id$
-
-// Defines a buffered memory allocation abstraction that reduces calls
-// to malloc.
-
-/* Copyright (C) 1989 Free Software Foundation, Inc.
- written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-
-This file is part of GNU GPERF.
-
-GNU GPERF is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-GNU GPERF is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU GPERF; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111,
-USA. */
-
-#include "Options.h"
-
-// Determine default alignment. If your C++ compiler does not like
-// this then try something like #define DEFAULT_ALIGNMENT 8.
-struct fooalign {char x; double d;};
-const int ALIGNMENT = ((char *)&((struct fooalign *) 0)->d - (char *)0);
-
-// Provide an abstraction that cuts down on the number of calls to NEW
-// by buffering the memory pool from which strings are allocated.
-
-void *
-operator new (size_t size)
-{
- // @@ This function should probably be replaced with something from
- // ACE, e.g., some type of ACE_Memory_Allocator.
-
- static char *buf_start = 0; // Large array used to reduce calls to NEW.
- static char *buf_end = 0; // Indicates end of BUF_START.
- static int buf_size = 4 * BUFSIZ; // Size of buffer pointed to by BUF_START.
- char *temp;
-
- // Align this on correct boundaries, just to be safe...
- size = ((size + ALIGNMENT - 1) / ALIGNMENT) * ALIGNMENT;
-
- // If we are about to overflow our buffer we'll just grab another
- // chunk of memory. Since we never free the original memory it
- // doesn't matter that no one points to the beginning of that
- // chunk. Note we use a heuristic that grows the buffer either by
- // size of the request or by twice the previous size, whichever is
- // larger.
-
- if (buf_start + size >= buf_end)
- {
- buf_size *= 2;
- if (buf_size < size)
- buf_size = size;
- if (buf_start = (char *) malloc (buf_size))
- buf_end = buf_start + buf_size;
- else
- ACE_ERROR ((LM_ERROR,
- "Virtual memory failed at %s, %s in function %s\n%a",
- __FILE__,
- __LINE__,
- "operator new",
- 1));
- }
-
- temp = buf_start;
- buf_start += size;
- return temp;
-}
-
-// We need this deletion operator in order to make the linker happy.
-
-void
-operator delete (void *ptr)
-{
- // We cannot call free here, as it doesn't match the mallocs. free
- // ((char *) ptr);
-}
diff --git a/apps/gperf/tests/Makefile.in b/apps/gperf/tests/Makefile.in
deleted file mode 100644
index f702fc804f2..00000000000
--- a/apps/gperf/tests/Makefile.in
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright (C) 1989, 1992, 1993 Free Software Foundation, Inc.
-# written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-#
-# This file is part of GNU GPERF.
-#
-# GNU GPERF is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 1, or (at your option)
-# any later version.
-#
-# GNU GPERF is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU GPERF; see the file COPYING. If not, write to the Free
-# Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111, USA.
-
-srcdir = .
-
-#### package, host, target, and site dependent Makefile fragments come in here.
-##
-
-GPERF = ../src/gperf
-
-check:
- @echo "performing some tests of the perfect hash generator"
- $(CC) -c $(CFLAGS) $(srcdir)/test.c
- $(GPERF) -p -c -l -S1 -o $(srcdir)/c.gperf > cinset.c
- $(CC) $(CFLAGS) -o cout cinset.c test.o
- @echo "testing ANSI C reserved words, all items should be found in the set"
- ./cout -v < $(srcdir)/c.gperf > c.out
- -diff -b $(srcdir)/c.exp c.out
- $(GPERF) -k1,4,'$$' $(srcdir)/ada.gperf > adainset.c
-# double '$$' is only there since make gets confused; programn wants only 1 '$'
- $(CC) $(CFLAGS) -o aout adainset.c test.o
- @echo "testing Ada reserved words, all items should be found in the set"
- ./aout -v < $(srcdir)/ada.gperf > ada-res.out
- -diff -b $(srcdir)/ada-res.exp ada-res.out
- $(GPERF) -p -D -k1,'$$' -s 2 -o $(srcdir)/adadefs.gperf > preinset.c
- $(CC) $(CFLAGS) -o preout preinset.c test.o
- @echo "testing Ada predefined words, all items should be found in the set"
- ./preout -v < $(srcdir)/adadefs.gperf > ada-pred.out
- -diff -b $(srcdir)/ada-pred.exp ada-pred.out
- $(GPERF) -k1,2,'$$' -o $(srcdir)/modula3.gperf > m3inset.c
- $(CC) $(CFLAGS) -o m3out m3inset.c test.o
- @echo "testing Modula3 reserved words, all items should be found in the set"
- ./m3out -v < $(srcdir)/modula3.gperf > modula.out
- -diff -b $(srcdir)/modula.exp modula.out
- $(GPERF) -o -S2 -p < $(srcdir)/pascal.gperf > pinset.c
- $(CC) $(CFLAGS) -o pout pinset.c test.o
- @echo "testing Pascal reserved words, all items should be found in the set"
- ./pout -v < $(srcdir)/pascal.gperf > pascal.out
- -diff -b $(srcdir)/pascal.exp pascal.out
-# these next 5 are demos that show off the generated code
- $(GPERF) -p -j1 -g -o -t -N is_reserved_word -k1,3,'$$' < $(srcdir)/c-parse.gperf > test-1.out
- -diff -b $(srcdir)/test-1.exp test-1.out
- $(GPERF) -n -k1-8 -l <$(srcdir)/modula2.gperf > test-2.out
- -diff -b $(srcdir)/test-2.exp test-2.out
- $(GPERF) -p -j 1 -o -a -C -g -t -k1,4,$$ < $(srcdir)/gplus.gperf > test-3.out
- -diff -b $(srcdir)/test-3.exp test-3.out
- $(GPERF) -D -p -t < $(srcdir)/c-parse.gperf > test-4.out
- -diff -b $(srcdir)/test-4.exp test-4.out
- $(GPERF) -g -o -j1 -t -p -N is_reserved_word < $(srcdir)/gpc.gperf > test-5.out
- -diff -b $(srcdir)/test-5.exp test-5.out
-# prints out the help message
- -$(GPERF) -h > test-6.out 2>&1 || [ a = a ]
- -diff -b $(srcdir)/test-6.exp test-6.out
- @echo "only if, do, for, case, goto, else, while, and return should be found "
- ./aout -v < $(srcdir)/c.gperf > test-7.out
- -diff -b $(srcdir)/test-7.exp test-7.out
diff --git a/apps/gperf/tests/ada-pred.exp b/apps/gperf/tests/ada-pred.exp
deleted file mode 100644
index 33caaa32ea1..00000000000
--- a/apps/gperf/tests/ada-pred.exp
+++ /dev/null
@@ -1,54 +0,0 @@
-in word set boolean
-in word set character
-in word set constraint_error
-in word set false
-in word set float
-in word set integer
-in word set natural
-in word set numeric_error
-in word set positive
-in word set program_error
-in word set storage_error
-in word set string
-in word set tasking_error
-in word set true
-in word set address
-in word set aft
-in word set base
-in word set callable
-in word set constrained
-in word set count
-in word set delta
-in word set digits
-in word set emax
-in word set epsilon
-in word set first
-in word set firstbit
-in word set fore
-in word set image
-in word set large
-in word set last
-in word set lastbit
-in word set length
-in word set machine_emax
-in word set machine_emin
-in word set machine_mantissa
-in word set machine_overflows
-in word set machine_radix
-in word set machine_rounds
-in word set mantissa
-in word set pos
-in word set position
-in word set pred
-in word set range
-in word set safe_emax
-in word set safe_large
-in word set safe_small
-in word set size
-in word set small
-in word set storage_size
-in word set succ
-in word set terminated
-in word set val
-in word set value
-in word set width
diff --git a/apps/gperf/tests/ada-res.exp b/apps/gperf/tests/ada-res.exp
deleted file mode 100644
index 8134fe861f5..00000000000
--- a/apps/gperf/tests/ada-res.exp
+++ /dev/null
@@ -1,63 +0,0 @@
-in word set else
-in word set exit
-in word set terminate
-in word set type
-in word set raise
-in word set range
-in word set reverse
-in word set declare
-in word set end
-in word set record
-in word set exception
-in word set not
-in word set then
-in word set return
-in word set separate
-in word set select
-in word set digits
-in word set renames
-in word set subtype
-in word set elsif
-in word set function
-in word set for
-in word set package
-in word set procedure
-in word set private
-in word set while
-in word set when
-in word set new
-in word set entry
-in word set delay
-in word set case
-in word set constant
-in word set at
-in word set abort
-in word set accept
-in word set and
-in word set delta
-in word set access
-in word set abs
-in word set pragma
-in word set array
-in word set use
-in word set out
-in word set do
-in word set others
-in word set of
-in word set or
-in word set all
-in word set limited
-in word set loop
-in word set null
-in word set task
-in word set in
-in word set is
-in word set if
-in word set rem
-in word set mod
-in word set begin
-in word set body
-in word set xor
-in word set goto
-in word set generic
-in word set with
diff --git a/apps/gperf/tests/ada.gperf b/apps/gperf/tests/ada.gperf
deleted file mode 100644
index 332bdc740ad..00000000000
--- a/apps/gperf/tests/ada.gperf
+++ /dev/null
@@ -1,63 +0,0 @@
-else
-exit
-terminate
-type
-raise
-range
-reverse
-declare
-end
-record
-exception
-not
-then
-return
-separate
-select
-digits
-renames
-subtype
-elsif
-function
-for
-package
-procedure
-private
-while
-when
-new
-entry
-delay
-case
-constant
-at
-abort
-accept
-and
-delta
-access
-abs
-pragma
-array
-use
-out
-do
-others
-of
-or
-all
-limited
-loop
-null
-task
-in
-is
-if
-rem
-mod
-begin
-body
-xor
-goto
-generic
-with
diff --git a/apps/gperf/tests/adadefs.gperf b/apps/gperf/tests/adadefs.gperf
deleted file mode 100644
index 875be69abc9..00000000000
--- a/apps/gperf/tests/adadefs.gperf
+++ /dev/null
@@ -1,54 +0,0 @@
-boolean
-character
-constraint_error
-false
-float
-integer
-natural
-numeric_error
-positive
-program_error
-storage_error
-string
-tasking_error
-true
-address
-aft
-base
-callable
-constrained
-count
-delta
-digits
-emax
-epsilon
-first
-firstbit
-fore
-image
-large
-last
-lastbit
-length
-machine_emax
-machine_emin
-machine_mantissa
-machine_overflows
-machine_radix
-machine_rounds
-mantissa
-pos
-position
-pred
-range
-safe_emax
-safe_large
-safe_small
-size
-small
-storage_size
-succ
-terminated
-val
-value
-width
diff --git a/apps/gperf/tests/c++.gperf b/apps/gperf/tests/c++.gperf
deleted file mode 100644
index 650d32d0edd..00000000000
--- a/apps/gperf/tests/c++.gperf
+++ /dev/null
@@ -1,47 +0,0 @@
-asm
-auto
-break
-case
-catch
-char
-class
-const
-continue
-default
-delete
-do
-double
-else
-enum
-extern
-float
-for
-friend
-goto
-if
-inline
-int
-long
-new
-operator
-overload
-private
-protected
-public
-register
-return
-short
-signed
-sizeof
-static
-struct
-switch
-template
-this
-typedef
-union
-unsigned
-virtual
-void
-volatile
-while
diff --git a/apps/gperf/tests/c-parse.gperf b/apps/gperf/tests/c-parse.gperf
deleted file mode 100644
index feef59babb0..00000000000
--- a/apps/gperf/tests/c-parse.gperf
+++ /dev/null
@@ -1,56 +0,0 @@
-%{
-/* Command-line: gperf -p -j1 -i 1 -g -o -t -N is_reserved_word -k1,3,$ c-parse.gperf */
-%}
-struct resword { char *name; short token; enum rid rid; };
-%%
-__alignof, ALIGNOF, NORID
-__alignof__, ALIGNOF, NORID
-__asm, ASM, NORID
-__asm__, ASM, NORID
-__attribute, ATTRIBUTE, NORID
-__attribute__, ATTRIBUTE, NORID
-__const, TYPE_QUAL, RID_CONST
-__const__, TYPE_QUAL, RID_CONST
-__inline, SCSPEC, RID_INLINE
-__inline__, SCSPEC, RID_INLINE
-__signed, TYPESPEC, RID_SIGNED
-__signed__, TYPESPEC, RID_SIGNED
-__typeof, TYPEOF, NORID
-__typeof__, TYPEOF, NORID
-__volatile, TYPE_QUAL, RID_VOLATILE
-__volatile__, TYPE_QUAL, RID_VOLATILE
-asm, ASM, NORID
-auto, SCSPEC, RID_AUTO
-break, BREAK, NORID
-case, CASE, NORID
-char, TYPESPEC, RID_CHAR
-const, TYPE_QUAL, RID_CONST
-continue, CONTINUE, NORID
-default, DEFAULT, NORID
-do, DO, NORID
-double, TYPESPEC, RID_DOUBLE
-else, ELSE, NORID
-enum, ENUM, NORID
-extern, SCSPEC, RID_EXTERN
-float, TYPESPEC, RID_FLOAT
-for, FOR, NORID
-goto, GOTO, NORID
-if, IF, NORID
-inline, SCSPEC, RID_INLINE
-int, TYPESPEC, RID_INT
-long, TYPESPEC, RID_LONG
-register, SCSPEC, RID_REGISTER
-return, RETURN, NORID
-short, TYPESPEC, RID_SHORT
-signed, TYPESPEC, RID_SIGNED
-sizeof, SIZEOF, NORID
-static, SCSPEC, RID_STATIC
-struct, STRUCT, NORID
-switch, SWITCH, NORID
-typedef, SCSPEC, RID_TYPEDEF
-typeof, TYPEOF, NORID
-union, UNION, NORID
-unsigned, TYPESPEC, RID_UNSIGNED
-void, TYPESPEC, RID_VOID
-volatile, TYPE_QUAL, RID_VOLATILE
-while, WHILE, NORID
diff --git a/apps/gperf/tests/c.exp b/apps/gperf/tests/c.exp
deleted file mode 100644
index 10c8b7f6116..00000000000
--- a/apps/gperf/tests/c.exp
+++ /dev/null
@@ -1,32 +0,0 @@
-in word set if
-in word set do
-in word set int
-in word set for
-in word set case
-in word set char
-in word set auto
-in word set goto
-in word set else
-in word set long
-in word set void
-in word set enum
-in word set float
-in word set short
-in word set union
-in word set break
-in word set while
-in word set const
-in word set double
-in word set static
-in word set extern
-in word set struct
-in word set return
-in word set sizeof
-in word set switch
-in word set signed
-in word set typedef
-in word set default
-in word set unsigned
-in word set continue
-in word set register
-in word set volatile
diff --git a/apps/gperf/tests/c.gperf b/apps/gperf/tests/c.gperf
deleted file mode 100644
index 8672d6c25ed..00000000000
--- a/apps/gperf/tests/c.gperf
+++ /dev/null
@@ -1,32 +0,0 @@
-if
-do
-int
-for
-case
-char
-auto
-goto
-else
-long
-void
-enum
-float
-short
-union
-break
-while
-const
-double
-static
-extern
-struct
-return
-sizeof
-switch
-signed
-typedef
-default
-unsigned
-continue
-register
-volatile
diff --git a/apps/gperf/tests/configure.in b/apps/gperf/tests/configure.in
deleted file mode 100644
index d93c7bb1840..00000000000
--- a/apps/gperf/tests/configure.in
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file is a shell script fragment that supplies the information
-# necessary to tailor a template configure script into the configure
-# script appropriate for this directory. For more information, check
-# any existing configure script.
-
-configdirs=""
-srctrigger=c-parse.gperf
-srcname="test perfect hash function generator"
-
-target_makefile_frag=../../target-mkfrag
-package_makefile_frag=Make.pack
-
-# per-host:
-
-# per-target:
-
-TOLIBGXX=../../
-ALL='$(NOTHING)'
-CHECK=check
-MOSTLYCLEAN='*.o \#* core *inset.c output.* *.out aout cout m3out pout preout'
-
-(. ${srcdir}/../../config.shared) >${package_makefile_frag}
-
-# post-target:
-
-rm -f ${package_makefile_frag}
diff --git a/apps/gperf/tests/gpc.gperf b/apps/gperf/tests/gpc.gperf
deleted file mode 100644
index 8fb469e46bc..00000000000
--- a/apps/gperf/tests/gpc.gperf
+++ /dev/null
@@ -1,48 +0,0 @@
-%{
-/* ISO Pascal 7185 reserved words.
- *
- * For GNU Pascal compiler (GPC) by jtv@hut.fi
- *
- * run this through the Doug Schmidt's gperf program
- * with command
- * gperf -g -o -j1 -t -p -N is_reserved_word
- *
- */
-%}
-struct resword { char *name; short token; short iclass;};
-%%
-And, AND, PASCAL_ISO
-Array, ARRAY, PASCAL_ISO
-Begin, BEGIN_, PASCAL_ISO
-Case, CASE, PASCAL_ISO
-Const, CONST, PASCAL_ISO
-Div, DIV, PASCAL_ISO
-Do, DO, PASCAL_ISO
-Downto, DOWNTO, PASCAL_ISO
-Else, ELSE, PASCAL_ISO
-End, END, PASCAL_ISO
-File, FILE_, PASCAL_ISO
-For, FOR, PASCAL_ISO
-Function, FUNCTION, PASCAL_ISO
-Goto, GOTO, PASCAL_ISO
-If, IF, PASCAL_ISO
-In, IN, PASCAL_ISO
-Label, LABEL, PASCAL_ISO
-Mod, MOD, PASCAL_ISO
-Nil, NIL, PASCAL_ISO
-Not, NOT, PASCAL_ISO
-Of, OF, PASCAL_ISO
-Or, OR, PASCAL_ISO
-Packed, PACKED, PASCAL_ISO
-Procedure, PROCEDURE, PASCAL_ISO
-Program,PROGRAM,PASCAL_ISO
-Record, RECORD, PASCAL_ISO
-Repeat, REPEAT, PASCAL_ISO
-Set, SET, PASCAL_ISO
-Then, THEN, PASCAL_ISO
-To, TO, PASCAL_ISO
-Type, TYPE, PASCAL_ISO
-Until, UNTIL, PASCAL_ISO
-Var, VAR, PASCAL_ISO
-While, WHILE, PASCAL_ISO
-With, WITH, PASCAL_ISO
diff --git a/apps/gperf/tests/gplus.gperf b/apps/gperf/tests/gplus.gperf
deleted file mode 100644
index 4a93315be52..00000000000
--- a/apps/gperf/tests/gplus.gperf
+++ /dev/null
@@ -1,76 +0,0 @@
-%{
-/* Command-line: gperf -p -j1 -g -o -t -N is_reserved_word -k1,4,$ gplus.gperf */
-%}
-struct resword { char *name; short token; enum rid rid;};
-%%
-__alignof, ALIGNOF, NORID
-__alignof__, ALIGNOF, NORID
-__asm, ASM, NORID
-__asm__, ASM, NORID
-__attribute, ATTRIBUTE, NORID
-__attribute__, ATTRIBUTE, NORID
-__const, TYPE_QUAL, RID_CONST
-__const__, TYPE_QUAL, RID_CONST
-__inline, SCSPEC, RID_INLINE
-__inline__, SCSPEC, RID_INLINE
-__signed, TYPESPEC, RID_SIGNED
-__signed__, TYPESPEC, RID_SIGNED
-__typeof, TYPEOF, NORID
-__typeof__, TYPEOF, NORID
-__volatile, TYPE_QUAL, RID_VOLATILE
-__volatile__, TYPE_QUAL, RID_VOLATILE
-all, ALL, NORID /* Extension */,
-except, EXCEPT, NORID /* Extension */,
-exception, AGGR, RID_EXCEPTION /* Extension */,
-raise, RAISE, NORID /* Extension */,
-raises, RAISES, NORID /* Extension */,
-reraise, RERAISE, NORID /* Extension */,
-try, TRY, NORID /* Extension */,
-asm, ASM, NORID,
-auto, SCSPEC, RID_AUTO,
-break, BREAK, NORID,
-case, CASE, NORID,
-catch, CATCH, NORID,
-char, TYPESPEC, RID_CHAR,
-class, AGGR, RID_CLASS,
-const, TYPE_QUAL, RID_CONST,
-continue, CONTINUE, NORID,
-default, DEFAULT, NORID,
-delete, DELETE, NORID,
-do, DO, NORID,
-double, TYPESPEC, RID_DOUBLE,
-dynamic, DYNAMIC, NORID,
-else, ELSE, NORID,
-enum, ENUM, NORID,
-extern, SCSPEC, RID_EXTERN,
-float, TYPESPEC, RID_FLOAT,
-for, FOR, NORID,
-friend, SCSPEC, RID_FRIEND,
-goto, GOTO, NORID,
-if, IF, NORID,
-inline, SCSPEC, RID_INLINE,
-int, TYPESPEC, RID_INT,
-long, TYPESPEC, RID_LONG,
-new, NEW, NORID,
-operator, OPERATOR, NORID,
-overload, OVERLOAD, NORID,
-private, PRIVATE, NORID,
-protected, PROTECTED, NORID,
-public, PUBLIC, NORID,
-register, SCSPEC, RID_REGISTER,
-return, RETURN, NORID,
-short, TYPESPEC, RID_SHORT,
-signed, TYPESPEC, RID_SIGNED,
-sizeof, SIZEOF, NORID,
-static, SCSPEC, RID_STATIC,
-struct, AGGR, RID_RECORD,
-switch, SWITCH, NORID,
-this, THIS, NORID,
-typedef, SCSPEC, RID_TYPEDEF,
-typeof, TYPEOF, NORID,
-union, AGGR, RID_UNION,
-unsigned, TYPESPEC, RID_UNSIGNED,
-virtual, SCSPEC, RID_VIRTUAL,
-void, TYPESPEC, RID_VOID,
-volatile, TYPE_QUAL, RID_VOLATILE,
-while, WHILE, NORID,
diff --git a/apps/gperf/tests/irc.gperf b/apps/gperf/tests/irc.gperf
deleted file mode 100644
index afe53c59e7d..00000000000
--- a/apps/gperf/tests/irc.gperf
+++ /dev/null
@@ -1,63 +0,0 @@
-%{
-extern int m_text(), m_private(), m_who(), m_whois(), m_user(), m_list();
-extern int m_topic(), m_invite(), m_channel(), m_version(), m_quit();
-extern int m_server(), m_kill(), m_info(), m_links(), m_summon(), m_stats();
-extern int m_users(), m_nick(), m_error(), m_help(), m_whoreply();
-extern int m_squit(), m_restart(), m_away(), m_die(), m_connect();
-extern int m_ping(), m_pong(), m_oper(), m_pass(), m_wall(), m_trace();
-extern int m_time(), m_rehash(), m_names(), m_namreply(), m_admin();
-extern int m_linreply(), m_notice(), m_lusers(), m_voice(), m_grph();
-extern int m_xtra(), m_motd();
-%}
-struct Message {
- char *cmd;
- int (* func)();
- int count;
- int parameters;
-};
-%%
-NICK, m_nick, 0, 1
-MSG, m_text, 0, 1
-PRIVMSG, m_private, 0, 2
-WHO, m_who, 0, 1
-WHOIS, m_whois, 0, 4
-USER, m_user, 0, 4
-SERVER, m_server, 0, 2
-LIST, m_list, 0, 1
-TOPIC, m_topic, 0, 1
-INVITE, m_invite, 0, 2
-CHANNEL, m_channel, 0, 1
-VERSION, m_version, 0, 1
-QUIT, m_quit, 0, 2
-SQUIT, m_squit, 0, 2
-KILL, m_kill, 0, 2
-INFO, m_info, 0, 1
-LINKS, m_links, 0, 1
-SUMMON, m_summon, 0, 1
-STATS, m_stats, 0, 1
-USERS, m_users, 0, 1
-RESTART, m_restart, 0, 1
-WHOREPLY,m_whoreply, 0, 7
-HELP, m_help, 0, 2
-ERROR, m_error, 0, 1
-AWAY, m_away, 0, 1
-DIE, m_die, 0, 1
-CONNECT, m_connect, 0, 3
-PING, m_ping, 0, 2
-PONG, m_pong, 0, 3
-OPER, m_oper, 0, 3
-PASS, m_pass, 0, 2
-WALL, m_wall, 0, 1
-TIME, m_time, 0, 1
-REHASH, m_rehash, 0, 1
-NAMES, m_names, 0, 1
-NAMREPLY,m_namreply, 0, 3
-ADMIN, m_admin, 0, 1
-TRACE, m_trace, 0, 1
-LINREPLY,m_linreply, 0, 2
-NOTICE, m_notice, 0, 2
-LUSERS, m_lusers, 0, 1
-VOICE, m_voice, 0, 2
-GRPH, m_grph, 0, 2
-XTRA, m_xtra, 0, 2
-MOTD, m_motd, 0, 2
diff --git a/apps/gperf/tests/makeinfo.gperf b/apps/gperf/tests/makeinfo.gperf
deleted file mode 100644
index 1488b8e38fb..00000000000
--- a/apps/gperf/tests/makeinfo.gperf
+++ /dev/null
@@ -1,116 +0,0 @@
-COMMAND;
-%%
-!, cm_force_sentence_end, false
-', insert_self, false
-*, cm_asterisk, false
-., cm_force_sentence_end, false
-:, cm_force_abbreviated_whitespace, false
-?, cm_force_sentence_end, false
-@, insert_self, false
-TeX, cm_TeX, true
-`, insert_self, false
-appendix, cm_appendix, false
-appendixsec, cm_appendixsec, false
-appendixsubsec, cm_appendixsubsec, false
-asis, cm_asis, true
-b, cm_bold, true
-br, cm_br, false
-bullet, cm_bullet, true
-bye, cm_bye, false
-c, cm_comment, false
-center, cm_center, false
-chapter, cm_chapter, false
-cindex, cm_cindex, false
-cite, cm_cite, true
-code, cm_code, true
-comment, cm_comment, false
-contents, do_nothing, false
-copyright, cm_copyright, true
-ctrl, cm_ctrl, true
-defcodeindex, cm_defindex, false
-defindex, cm_defindex, false
-dfn, cm_dfn, true
-display, cm_display, false
-dots, cm_dots, true
-emph, cm_emph, true
-end, cm_end, false
-enumerate, cm_enumerate, false
-equiv, cm_equiv, true
-error, cm_error, true
-example, cm_example, false
-exdent, cm_exdent, false
-expansion, cm_expansion, true
-file, cm_file, true
-findex, cm_findex, false
-format, cm_format, false
-group, cm_group, false
-i, cm_italic, true
-iappendix, cm_appendix, false
-iappendixsec, cm_appendixsec, false
-iappendixsubsec, cm_appendixsubsec, false
-ichapter, cm_chapter, false
-ifinfo, cm_ifinfo, false
-iftex, cm_iftex, false
-ignore, cm_ignore, false
-include, cm_include, false
-inforef, cm_inforef, true
-input, cm_include, false
-isection, cm_section, false
-isubsection, cm_subsection, false
-isubsubsection, cm_subsubsection, false
-item, cm_item, false
-itemize, cm_itemize, false
-itemx, cm_itemx, false
-iunnumbered, cm_unnumbered, false
-iunnumberedsec, cm_unnumberedsec, false
-iunnumberedsubsec, cm_unnumberedsubsec, false
-kbd, cm_kbd, true
-key, cm_key, true
-kindex, cm_kindex, false
-lisp, cm_lisp, false
-menu, cm_menu
-minus, cm_minus, true
-need, cm_need, false
-node, cm_node, false
-noindent, cm_noindent, false
-page, do_nothing, false
-pindex, cm_pindex, false
-point, cm_point, true
-print, cm_print, true
-printindex, cm_printindex, false
-pxref, cm_pxref, true
-quotation, cm_quotation, false
-r, cm_roman, true
-ref, cm_xref, true
-refill, cm_refill, false
-result, cm_result, true
-samp, cm_samp, true
-sc, cm_sc, true
-section, cm_section, false
-setchapternewpage, cm_setchapternewpage, false
-setfilename, cm_setfilename, false
-settitle, cm_settitle, false
-smallexample, cm_smallexample, false
-sp, cm_sp, false
-strong, cm_strong, true
-subsection, cm_subsection, false
-subsubsection, cm_subsubsection, false
-summarycontents, do_nothing, false
-syncodeindex, cm_synindex, false
-synindex, cm_synindex, false
-t, cm_title, true
-table, cm_table, false
-tex, cm_tex, false
-tindex, cm_tindex, false
-titlepage, cm_titlepage, false
-unnumbered, cm_unnumbered, false
-unnumberedsec, cm_unnumberedsec, false
-unnumberedsubsec, cm_unnumberedsubsec, false
-var, cm_var, true
-vindex, cm_vindex, false
-w, cm_w, true
-xref, cm_xref, true
-{, insert_self, false
-}, insert_self, false
-infoinclude, cm_infoinclude, false
-footnote, cm_footnote, false
diff --git a/apps/gperf/tests/modula.exp b/apps/gperf/tests/modula.exp
deleted file mode 100644
index cef7d5acad8..00000000000
--- a/apps/gperf/tests/modula.exp
+++ /dev/null
@@ -1,106 +0,0 @@
-in word set AND
-in word set ARRAY
-in word set BEGIN
-in word set BITS
-in word set BY
-in word set CASE
-in word set CONST
-in word set DIV
-in word set DO
-in word set ELSE
-in word set ELSIF
-in word set END
-in word set EVAL
-in word set EXCEPT
-in word set EXCEPTION
-in word set EXIT
-in word set EXPORTS
-in word set FINALLY
-in word set FOR
-in word set FROM
-in word set IF
-in word set IMPORT
-in word set INTERFACE
-in word set IN
-in word set INLINE
-in word set LOCK
-in word set METHODS
-in word set MOD
-in word set MODULE
-in word set NOT
-in word set OBJECT
-in word set OF
-in word set OR
-in word set PROCEDURE
-in word set RAISES
-in word set READONLY
-in word set RECORD
-in word set REF
-in word set REPEAT
-in word set RETURN
-in word set SET
-in word set THEN
-in word set TO
-in word set TRY
-in word set TYPE
-in word set TYPECASE
-in word set UNSAFE
-in word set UNTIL
-in word set UNTRACED
-in word set VALUE
-in word set VAR
-in word set WHILE
-in word set WITH
-in word set and
-in word set array
-in word set begin
-in word set bits
-in word set by
-in word set case
-in word set const
-in word set div
-in word set do
-in word set else
-in word set elsif
-in word set end
-in word set eval
-in word set except
-in word set exception
-in word set exit
-in word set exports
-in word set finally
-in word set for
-in word set from
-in word set if
-in word set import
-in word set interface
-in word set in
-in word set inline
-in word set lock
-in word set methods
-in word set mod
-in word set module
-in word set not
-in word set object
-in word set of
-in word set or
-in word set procedure
-in word set raises
-in word set readonly
-in word set record
-in word set ref
-in word set repeat
-in word set return
-in word set set
-in word set then
-in word set to
-in word set try
-in word set type
-in word set typecase
-in word set unsafe
-in word set until
-in word set untraced
-in word set value
-in word set var
-in word set while
-in word set with
diff --git a/apps/gperf/tests/modula2.gperf b/apps/gperf/tests/modula2.gperf
deleted file mode 100644
index 5ef9c753835..00000000000
--- a/apps/gperf/tests/modula2.gperf
+++ /dev/null
@@ -1,40 +0,0 @@
-AND
-ARRAY
-BEGIN
-BY
-CASE
-CONST
-DEFINITION
-DIV
-DO
-ELSE
-ELSIF
-END
-EXIT
-EXPORT
-FOR
-FROM
-IF
-IMPLEMENTATION
-IMPORT
-IN
-LOOP
-MOD
-MODULE
-NOT
-OF
-OR
-POINTER
-PROCEDURE
-QUALIFIED
-RECORD
-REPEAT
-RETURN
-SET
-THEN
-TO
-TYPE
-UNTIL
-VAR
-WHILE
-WITH
diff --git a/apps/gperf/tests/modula3.gperf b/apps/gperf/tests/modula3.gperf
deleted file mode 100644
index d0243460d9b..00000000000
--- a/apps/gperf/tests/modula3.gperf
+++ /dev/null
@@ -1,106 +0,0 @@
-AND
-ARRAY
-BEGIN
-BITS
-BY
-CASE
-CONST
-DIV
-DO
-ELSE
-ELSIF
-END
-EVAL
-EXCEPT
-EXCEPTION
-EXIT
-EXPORTS
-FINALLY
-FOR
-FROM
-IF
-IMPORT
-INTERFACE
-IN
-INLINE
-LOCK
-METHODS
-MOD
-MODULE
-NOT
-OBJECT
-OF
-OR
-PROCEDURE
-RAISES
-READONLY
-RECORD
-REF
-REPEAT
-RETURN
-SET
-THEN
-TO
-TRY
-TYPE
-TYPECASE
-UNSAFE
-UNTIL
-UNTRACED
-VALUE
-VAR
-WHILE
-WITH
-and
-array
-begin
-bits
-by
-case
-const
-div
-do
-else
-elsif
-end
-eval
-except
-exception
-exit
-exports
-finally
-for
-from
-if
-import
-interface
-in
-inline
-lock
-methods
-mod
-module
-not
-object
-of
-or
-procedure
-raises
-readonly
-record
-ref
-repeat
-return
-set
-then
-to
-try
-type
-typecase
-unsafe
-until
-untraced
-value
-var
-while
-with
diff --git a/apps/gperf/tests/pascal.exp b/apps/gperf/tests/pascal.exp
deleted file mode 100644
index 765e44c6a0f..00000000000
--- a/apps/gperf/tests/pascal.exp
+++ /dev/null
@@ -1,36 +0,0 @@
-in word set with
-in word set array
-in word set and
-in word set function
-in word set case
-in word set var
-in word set const
-in word set until
-in word set then
-in word set set
-in word set record
-in word set program
-in word set procedure
-in word set or
-in word set packed
-in word set not
-in word set nil
-in word set label
-in word set in
-in word set repeat
-in word set of
-in word set goto
-in word set forward
-in word set for
-in word set while
-in word set file
-in word set else
-in word set downto
-in word set do
-in word set div
-in word set to
-in word set type
-in word set end
-in word set mod
-in word set begin
-in word set if
diff --git a/apps/gperf/tests/pascal.gperf b/apps/gperf/tests/pascal.gperf
deleted file mode 100644
index fed3fbb30ea..00000000000
--- a/apps/gperf/tests/pascal.gperf
+++ /dev/null
@@ -1,36 +0,0 @@
-with
-array
-and
-function
-case
-var
-const
-until
-then
-set
-record
-program
-procedure
-or
-packed
-not
-nil
-label
-in
-repeat
-of
-goto
-forward
-for
-while
-file
-else
-downto
-do
-div
-to
-type
-end
-mod
-begin
-if
diff --git a/apps/gperf/tests/test-1.exp b/apps/gperf/tests/test-1.exp
deleted file mode 100644
index 5788cf7dfc3..00000000000
--- a/apps/gperf/tests/test-1.exp
+++ /dev/null
@@ -1,140 +0,0 @@
-/* C code produced by gperf version 2.5 (GNU C++ version) */
-/* Command-line: ../src/gperf -p -j1 -g -o -t -N is_reserved_word -k1,3,$ */
-/* Command-line: gperf -p -j1 -i 1 -g -o -t -N is_reserved_word -k1,3,$ c-parse.gperf */
-struct resword { char *name; short token; enum rid rid; };
-
-#define TOTAL_KEYWORDS 51
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 13
-#define MIN_HASH_VALUE 8
-#define MAX_HASH_VALUE 82
-/* maximum key range = 75, duplicates = 0 */
-
-#ifdef __GNUC__
-inline
-#endif
-static unsigned int
-hash (str, len)
- register char *str;
- register int unsigned len;
-{
- static unsigned char asso_values[] =
- {
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 0, 83, 1, 2, 34,
- 19, 6, 11, 29, 0, 17, 83, 0, 23, 28,
- 26, 30, 31, 83, 15, 1, 0, 28, 13, 4,
- 83, 83, 5, 83, 83, 83, 83, 83,
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- case 3:
- hval += asso_values[str[2]];
- case 2:
- case 1:
- hval += asso_values[str[0]];
- break;
- }
- return hval + asso_values[str[len - 1]];
-}
-
-#ifdef __GNUC__
-inline
-#endif
-struct resword *
-is_reserved_word (str, len)
- register char *str;
- register unsigned int len;
-{
- static struct resword wordlist[] =
- {
- {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
- {"__asm__", ASM, NORID},
- {"",},
- {"__typeof__", TYPEOF, NORID},
- {"__signed__", TYPESPEC, RID_SIGNED},
- {"__alignof__", ALIGNOF, NORID},
- {"break", BREAK, NORID},
- {"__attribute__", ATTRIBUTE, NORID},
- {"",}, {"",},
- {"else", ELSE, NORID},
- {"__attribute", ATTRIBUTE, NORID},
- {"__typeof", TYPEOF, NORID},
- {"int", TYPESPEC, RID_INT},
- {"__alignof", ALIGNOF, NORID},
- {"struct", STRUCT, NORID},
- {"sizeof", SIZEOF, NORID},
- {"switch", SWITCH, NORID},
- {"__volatile__", TYPE_QUAL, RID_VOLATILE},
- {"",},
- {"__inline__", SCSPEC, RID_INLINE},
- {"__signed", TYPESPEC, RID_SIGNED},
- {"__volatile", TYPE_QUAL, RID_VOLATILE},
- {"if", IF, NORID},
- {"__inline", SCSPEC, RID_INLINE},
- {"while", WHILE, NORID},
- {"",},
- {"__asm", ASM, NORID},
- {"auto", SCSPEC, RID_AUTO},
- {"short", TYPESPEC, RID_SHORT},
- {"default", DEFAULT, NORID},
- {"extern", SCSPEC, RID_EXTERN},
- {"",}, {"",},
- {"__const", TYPE_QUAL, RID_CONST},
- {"static", SCSPEC, RID_STATIC},
- {"__const__", TYPE_QUAL, RID_CONST},
- {"for", FOR, NORID},
- {"case", CASE, NORID},
- {"float", TYPESPEC, RID_FLOAT},
- {"return", RETURN, NORID},
- {"typeof", TYPEOF, NORID},
- {"typedef", SCSPEC, RID_TYPEDEF},
- {"volatile", TYPE_QUAL, RID_VOLATILE},
- {"do", DO, NORID},
- {"inline", SCSPEC, RID_INLINE},
- {"void", TYPESPEC, RID_VOID},
- {"char", TYPESPEC, RID_CHAR},
- {"signed", TYPESPEC, RID_SIGNED},
- {"unsigned", TYPESPEC, RID_UNSIGNED},
- {"",}, {"",},
- {"double", TYPESPEC, RID_DOUBLE},
- {"asm", ASM, NORID},
- {"",}, {"",},
- {"goto", GOTO, NORID},
- {"",},
- {"const", TYPE_QUAL, RID_CONST},
- {"enum", ENUM, NORID},
- {"register", SCSPEC, RID_REGISTER},
- {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
- {"continue", CONTINUE, NORID},
- {"",},
- {"union", UNION, NORID},
- {"",}, {"",}, {"",}, {"",}, {"",},
- {"long", TYPESPEC, RID_LONG},
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- {
- register char *s = wordlist[key].name;
-
- if (*s == *str && !strcmp (str + 1, s + 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/apps/gperf/tests/test-2.exp b/apps/gperf/tests/test-2.exp
deleted file mode 100644
index f74124155eb..00000000000
--- a/apps/gperf/tests/test-2.exp
+++ /dev/null
@@ -1,183 +0,0 @@
-/* C code produced by gperf version 2.5 (GNU C++ version) */
-/* Command-line: ../src/gperf -n -k1-8 -l */
-
-#define TOTAL_KEYWORDS 40
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 14
-#define MIN_HASH_VALUE 1
-#define MAX_HASH_VALUE 256
-/* maximum key range = 256, duplicates = 0 */
-
-static unsigned int
-hash (str, len)
- register char *str;
- register int unsigned len;
-{
- static unsigned short asso_values[] =
- {
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 25, 30, 35, 21, 0,
- 30, 15, 30, 45, 257, 257, 0, 5, 45, 0,
- 10, 0, 1, 20, 25, 15, 30, 40, 15, 5,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257,
- };
- register int hval = 0;
-
- switch (len)
- {
- default:
- case 8:
- hval += asso_values[str[7]];
- case 7:
- hval += asso_values[str[6]];
- case 6:
- hval += asso_values[str[5]];
- case 5:
- hval += asso_values[str[4]];
- case 4:
- hval += asso_values[str[3]];
- case 3:
- hval += asso_values[str[2]];
- case 2:
- hval += asso_values[str[1]];
- case 1:
- hval += asso_values[str[0]];
- break;
- }
- return hval;
-}
-
-char *
-in_word_set (str, len)
- register char *str;
- register unsigned int len;
-{
-
- static unsigned char lengthtable[] =
- {
- 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 2, 3, 0,
- 0, 0, 2, 3, 0, 0, 0, 2, 4, 0, 0, 0, 4, 6,
- 0, 0, 0, 3, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
- 3, 5, 6, 0, 0, 6, 0, 0, 0, 0, 3, 0, 0, 0,
- 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 9,
- 0, 4, 6, 6, 0, 0, 2, 3, 0, 0, 0, 5, 3, 0,
- 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0,
- 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
- 7, 0, 0, 0, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 10,
- };
- static char *wordlist[] =
- {
- "",
- "OR",
- "", "", "", "", "", "", "", "",
- "LOOP",
- "", "", "", "", "", "", "", "", "",
- "ELSE",
- "DO",
- "", "", "",
- "TO",
- "MOD",
- "", "", "",
- "OF",
- "FOR",
- "", "", "",
- "BY",
- "FROM",
- "", "", "",
- "TYPE",
- "MODULE",
- "", "", "",
- "SET",
- "", "", "", "", "",
- "EXPORT",
- "", "", "", "",
- "VAR",
- "ARRAY",
- "RECORD",
- "", "",
- "REPEAT",
- "", "", "", "",
- "END",
- "", "", "",
- "NOT",
- "", "", "", "",
- "IF",
- "", "", "", "",
- "CASE",
- "", "",
- "PROCEDURE",
- "",
- "EXIT",
- "IMPORT",
- "RETURN",
- "", "",
- "IN",
- "AND",
- "", "", "",
- "ELSIF",
- "DIV",
- "", "", "",
- "THEN",
- "", "", "", "", "", "", "", "", "",
- "IMPLEMENTATION",
- "", "", "", "",
- "WHILE",
- "", "", "", "", "", "", "", "", "",
- "CONST",
- "POINTER",
- "", "", "",
- "UNTIL",
- "", "", "", "",
- "BEGIN",
- "", "", "", "",
- "WITH",
- "", "", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "", "", "",
- "", "QUALIFIED",
- "", "", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "", "", "",
- "", "", "", "", "",
- "DEFINITION",
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- {
- register char *s = wordlist[key];
-
- if (len == lengthtable[key]
- && *s == *str && !strcmp (str + 1, s + 1))
- return s;
- }
- }
- return 0;
-}
diff --git a/apps/gperf/tests/test-3.exp b/apps/gperf/tests/test-3.exp
deleted file mode 100644
index 5e889020657..00000000000
--- a/apps/gperf/tests/test-3.exp
+++ /dev/null
@@ -1,169 +0,0 @@
-/* C code produced by gperf version 2.5 (GNU C++ version) */
-/* Command-line: ../src/gperf -p -j 1 -o -a -C -g -t -k1,4,$ */
-/* Command-line: gperf -p -j1 -g -o -t -N is_reserved_word -k1,4,$ gplus.gperf */
-struct resword { char *name; short token; enum rid rid;};
-
-#define TOTAL_KEYWORDS 71
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 13
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 147
-/* maximum key range = 144, duplicates = 0 */
-
-#ifdef __GNUC__
-inline
-#endif
-static unsigned int
-hash (register const char *str, register int len)
-{
- static const unsigned char asso_values[] =
- {
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 0, 148, 19, 6, 27,
- 37, 0, 12, 1, 15, 63, 148, 4, 0, 56,
- 20, 15, 42, 148, 31, 5, 26, 39, 32, 10,
- 148, 40, 148, 148, 148, 148, 148, 148,
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- case 4:
- hval += asso_values[str[3]];
- case 3:
- case 2:
- case 1:
- hval += asso_values[str[0]];
- break;
- }
- return hval + asso_values[str[len - 1]];
-}
-
-#ifdef __GNUC__
-inline
-#endif
-const struct resword *
-in_word_set (register const char *str, register int len)
-{
- static const struct resword wordlist[] =
- {
- {"",}, {"",}, {"",}, {"",},
- {"else", ELSE, NORID,},
- {"",},
- {"long", TYPESPEC, RID_LONG,},
- {"",}, {"",}, {"",}, {"",},
- {"__alignof__", ALIGNOF, NORID},
- {"__asm__", ASM, NORID},
- {"",}, {"",},
- {"while", WHILE, NORID,},
- {"",}, {"",}, {"",}, {"",}, {"",},
- {"__alignof", ALIGNOF, NORID},
- {"all", ALL, NORID /* Extension */,},
- {"sizeof", SIZEOF, NORID,},
- {"__const__", TYPE_QUAL, RID_CONST},
- {"__volatile", TYPE_QUAL, RID_VOLATILE},
- {"extern", SCSPEC, RID_EXTERN,},
- {"__volatile__", TYPE_QUAL, RID_VOLATILE},
- {"__inline", SCSPEC, RID_INLINE},
- {"exception", AGGR, RID_EXCEPTION /* Extension */,},
- {"__inline__", SCSPEC, RID_INLINE},
- {"case", CASE, NORID,},
- {"except", EXCEPT, NORID /* Extension */,},
- {"new", NEW, NORID,},
- {"break", BREAK, NORID,},
- {"goto", GOTO, NORID,},
- {"",},
- {"__attribute", ATTRIBUTE, NORID},
- {"",},
- {"__attribute__", ATTRIBUTE, NORID},
- {"this", THIS, NORID,},
- {"raise", RAISE, NORID /* Extension */,},
- {"class", AGGR, RID_CLASS,},
- {"delete", DELETE, NORID,},
- {"typeof", TYPEOF, NORID,},
- {"typedef", SCSPEC, RID_TYPEDEF,},
- {"for", FOR, NORID,},
- {"raises", RAISES, NORID /* Extension */,},
- {"__const", TYPE_QUAL, RID_CONST},
- {"double", TYPESPEC, RID_DOUBLE,},
- {"__typeof__", TYPEOF, NORID},
- {"",},
- {"switch", SWITCH, NORID,},
- {"auto", SCSPEC, RID_AUTO,},
- {"do", DO, NORID,},
- {"friend", SCSPEC, RID_FRIEND,},
- {"",},
- {"reraise", RERAISE, NORID /* Extension */,},
- {"",},
- {"volatile", TYPE_QUAL, RID_VOLATILE,},
- {"__typeof", TYPEOF, NORID},
- {"continue", CONTINUE, NORID,},
- {"float", TYPESPEC, RID_FLOAT,},
- {"const", TYPE_QUAL, RID_CONST,},
- {"static", SCSPEC, RID_STATIC,},
- {"virtual", SCSPEC, RID_VIRTUAL,},
- {"__asm", ASM, NORID},
- {"short", TYPESPEC, RID_SHORT,},
- {"signed", TYPESPEC, RID_SIGNED,},
- {"try", TRY, NORID /* Extension */,},
- {"",}, {"",}, {"",},
- {"__signed__", TYPESPEC, RID_SIGNED},
- {"catch", CATCH, NORID,},
- {"public", PUBLIC, NORID,},
- {"struct", AGGR, RID_RECORD,},
- {"if", IF, NORID,},
- {"asm", ASM, NORID,},
- {"union", AGGR, RID_UNION,},
- {"",},
- {"private", PRIVATE, NORID,},
- {"",}, {"",}, {"",},
- {"operator", OPERATOR, NORID,},
- {"",}, {"",}, {"",},
- {"default", DEFAULT, NORID,},
- {"dynamic", DYNAMIC, NORID,},
- {"overload", OVERLOAD, NORID,},
- {"int", TYPESPEC, RID_INT,},
- {"char", TYPESPEC, RID_CHAR,},
- {"",}, {"",},
- {"return", RETURN, NORID,},
- {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
- {"",}, {"",},
- {"__signed", TYPESPEC, RID_SIGNED},
- {"",},
- {"void", TYPESPEC, RID_VOID,},
- {"",}, {"",}, {"",},
- {"protected", PROTECTED, NORID,},
- {"",},
- {"enum", ENUM, NORID,},
- {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
- {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
- {"inline", SCSPEC, RID_INLINE,},
- {"register", SCSPEC, RID_REGISTER,},
- {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
- {"",}, {"",}, {"",}, {"",},
- {"unsigned", TYPESPEC, RID_UNSIGNED,},
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- {
- register const char *s = wordlist[key].name;
-
- if (*s == *str && !strcmp (str + 1, s + 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/apps/gperf/tests/test-4.exp b/apps/gperf/tests/test-4.exp
deleted file mode 100644
index 5238bf94d98..00000000000
--- a/apps/gperf/tests/test-4.exp
+++ /dev/null
@@ -1,138 +0,0 @@
-/* C code produced by gperf version 2.5 (GNU C++ version) */
-/* Command-line: ../src/gperf -D -p -t */
-/* Command-line: gperf -p -j1 -i 1 -g -o -t -N is_reserved_word -k1,3,$ c-parse.gperf */
-struct resword { char *name; short token; enum rid rid; };
-
-#define TOTAL_KEYWORDS 51
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 13
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 82
-/* maximum key range = 79, duplicates = 2 */
-
-static unsigned int
-hash (str, len)
- register char *str;
- register int unsigned len;
-{
- static unsigned char asso_values[] =
- {
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 0, 83, 40, 20, 50,
- 25, 10, 30, 0, 0, 50, 83, 0, 15, 0,
- 35, 0, 83, 83, 20, 0, 10, 40, 5, 15,
- 83, 83, 83, 83, 83, 83, 83, 83,
- };
- return len + asso_values[str[len - 1]] + asso_values[str[0]];
-}
-
-struct resword *
-in_word_set (str, len)
- register char *str;
- register unsigned int len;
-{
- static struct resword wordlist[] =
- {
- {"",}, {"",}, {"",}, {"",},
- {"goto", GOTO, NORID},
- {"__asm", ASM, NORID},
- {"switch", SWITCH, NORID},
- {"__asm__", ASM, NORID},
- {"__const__", TYPE_QUAL, RID_CONST},
- {"__inline__", SCSPEC, RID_INLINE},
- {"__typeof__", TYPEOF, NORID},
- {"__signed__", TYPESPEC, RID_SIGNED},
- {"__alignof__", ALIGNOF, NORID},
- {"__volatile__", TYPE_QUAL, RID_VOLATILE},
- {"__attribute__", ATTRIBUTE, NORID},
- {"enum", ENUM, NORID},
- {"short", TYPESPEC, RID_SHORT},
- {"struct", STRUCT, NORID},
- {"__const", TYPE_QUAL, RID_CONST},
- {"__inline", SCSPEC, RID_INLINE},
- {"long", TYPESPEC, RID_LONG},
- {"__volatile", TYPE_QUAL, RID_VOLATILE},
- {"__attribute", ATTRIBUTE, NORID},
- {"volatile", TYPE_QUAL, RID_VOLATILE},
- {"else", ELSE, NORID},
- {"break", BREAK, NORID},
- {"do", DO, NORID},
- {"while", WHILE, NORID},
- {"signed", TYPESPEC, RID_SIGNED},
- {"__signed", TYPESPEC, RID_SIGNED},
- {"void", TYPESPEC, RID_VOID},
- {"sizeof", SIZEOF, NORID},
- {"__typeof", TYPEOF, NORID},
- {"__alignof", ALIGNOF, NORID},
- {"double", TYPESPEC, RID_DOUBLE},
- {"default", DEFAULT, NORID},
- {"asm", ASM, NORID},
- {"auto", SCSPEC, RID_AUTO},
- {"float", TYPESPEC, RID_FLOAT},
- {"typeof", TYPEOF, NORID},
- {"typedef", SCSPEC, RID_TYPEDEF},
- {"register", SCSPEC, RID_REGISTER},
- {"extern", SCSPEC, RID_EXTERN},
- {"for", FOR, NORID},
- {"static", SCSPEC, RID_STATIC},
- {"return", RETURN, NORID},
- {"int", TYPESPEC, RID_INT},
- {"case", CASE, NORID},
- {"const", TYPE_QUAL, RID_CONST},
- {"inline", SCSPEC, RID_INLINE},
- {"continue", CONTINUE, NORID},
- {"unsigned", TYPESPEC, RID_UNSIGNED},
- {"char", TYPESPEC, RID_CHAR},
- {"union", UNION, NORID},
- {"if", IF, NORID},
- };
-
- static char lookup[] =
- {
- -1, -1, -1, -1, 4, 5, 6, 7, -1, 8, 100, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, -1, 23, 24, 25, -1, 26,
- -9, -3, 27, 28, -1, 29, 30, -1, 31, -1, 32, 33, -1, 34,
- 35, 36, 37, 38, 39, 40, 41, -1, -1, 42, -1, 43, -1, -1,
- 44, -1, -1, -1, -1, 45, -1, 46, 47, 48, 49, -1, 50, -1,
- -1, -1, -1, 51, 52, -1, -1, -1, -1, -1, 53, -1, 54,
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- {
- register int index = lookup[key];
-
- if (index >= 0 && index < MAX_HASH_VALUE)
- {
- register char *s = wordlist[index].name;
-
- if (*s == *str && !strcmp (str + 1, s + 1))
- return &wordlist[index];
- }
- else if (index < 0 && index >= -MAX_HASH_VALUE)
- return 0;
- else
- {
- register int offset = key + index + (index > 0 ? -MAX_HASH_VALUE : MAX_HASH_VALUE);
- register struct resword *base = &wordlist[-lookup[offset]];
- register struct resword *ptr = base + -lookup[offset + 1];
-
- while (--ptr >= base)
- if (*str == *ptr->name && !strcmp (str + 1, ptr->name + 1))
- return ptr;
- }
- }
- }
- return 0;
-}
diff --git a/apps/gperf/tests/test-5.exp b/apps/gperf/tests/test-5.exp
deleted file mode 100644
index 101e2798d40..00000000000
--- a/apps/gperf/tests/test-5.exp
+++ /dev/null
@@ -1,111 +0,0 @@
-/* C code produced by gperf version 2.5 (GNU C++ version) */
-/* Command-line: ../src/gperf -g -o -j1 -t -p -N is_reserved_word */
-/* ISO Pascal 7185 reserved words.
- *
- * For GNU Pascal compiler (GPC) by jtv@hut.fi
- *
- * run this through the Doug Schmidt's gperf program
- * with command
- * gperf -g -o -j1 -t -p -N is_reserved_word
- *
- */
-struct resword { char *name; short token; short iclass;};
-
-#define TOTAL_KEYWORDS 35
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 9
-#define MIN_HASH_VALUE 2
-#define MAX_HASH_VALUE 43
-/* maximum key range = 42, duplicates = 0 */
-
-#ifdef __GNUC__
-inline
-#endif
-static unsigned int
-hash (str, len)
- register char *str;
- register int unsigned len;
-{
- static unsigned char asso_values[] =
- {
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 18, 29, 14, 6, 7,
- 10, 20, 44, 28, 44, 44, 28, 19, 22, 15,
- 0, 44, 9, 23, 0, 23, 26, 2, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 0, 0, 13, 44, 30, 44, 44, 44, 0, 25,
- 1, 0, 44, 44, 0, 44, 1, 44, 25, 44,
- 44, 0, 44, 44, 44, 44, 44, 44,
- };
- return len + asso_values[str[len - 1]] + asso_values[str[0]];
-}
-
-#ifdef __GNUC__
-inline
-#endif
-struct resword *
-is_reserved_word (str, len)
- register char *str;
- register unsigned int len;
-{
- static struct resword wordlist[] =
- {
- {"",}, {"",},
- {"To", TO, PASCAL_ISO},
- {"",},
- {"Type", TYPE, PASCAL_ISO},
- {"Then", THEN, PASCAL_ISO},
- {"Packed", PACKED, PASCAL_ISO},
- {"While", WHILE, PASCAL_ISO},
- {"Do", DO, PASCAL_ISO},
- {"Procedure", PROCEDURE, PASCAL_ISO},
- {"End", END, PASCAL_ISO},
- {"Else", ELSE, PASCAL_ISO},
- {"Downto", DOWNTO, PASCAL_ISO},
- {"For", FOR, PASCAL_ISO},
- {"File", FILE_, PASCAL_ISO},
- {"Record", RECORD, PASCAL_ISO},
- {"Repeat", REPEAT, PASCAL_ISO},
- {"Or", OR, PASCAL_ISO},
- {"Case", CASE, PASCAL_ISO},
- {"Function", FUNCTION, PASCAL_ISO},
- {"Const", CONST, PASCAL_ISO},
- {"And", AND, PASCAL_ISO},
- {"Mod", MOD, PASCAL_ISO},
- {"Array", ARRAY, PASCAL_ISO},
- {"Goto", GOTO, PASCAL_ISO},
- {"Nil", NIL, PASCAL_ISO},
- {"Not", NOT, PASCAL_ISO},
- {"Set", SET, PASCAL_ISO},
- {"Until", UNTIL, PASCAL_ISO},
- {"Var", VAR, PASCAL_ISO},
- {"Of", OF, PASCAL_ISO},
- {"In", IN, PASCAL_ISO},
- {"Program", PROGRAM,PASCAL_ISO},
- {"Label", LABEL, PASCAL_ISO},
- {"Div", DIV, PASCAL_ISO},
- {"Begin", BEGIN_, PASCAL_ISO},
- {"With", WITH, PASCAL_ISO},
- {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
- {"If", IF, PASCAL_ISO},
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- {
- register char *s = wordlist[key].name;
-
- if (*s == *str && !strcmp (str + 1, s + 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/apps/gperf/tests/test-6.exp b/apps/gperf/tests/test-6.exp
deleted file mode 100644
index eba6e3cac9a..00000000000
--- a/apps/gperf/tests/test-6.exp
+++ /dev/null
@@ -1,74 +0,0 @@
--a Generate ANSI standard C output code, i.e., function prototypes.
--c Generate comparison code using strncmp rather than strcmp.
--C Make the contents of generated lookup tables constant, i.e., readonly.
--d Enables the debugging option (produces verbose output to the standard error).
--D Handle keywords that hash to duplicate values. This is useful
- for certain highly redundant keyword sets. It enables the -S option.
--e Allow user to provide a string containing delimiters used to separate
- keywords from their attributes. Default is ",\n"
--E Define constant values using an enum local to the lookup function
- rather than with defines
--f Generate the gen-perf.hash function ``fast.'' This decreases GPERF's
- running time at the cost of minimizing generated table-size.
- The numeric argument represents the number of times to iterate when
- resolving a collision. `0' means ``iterate by the number of keywords.''
--g Assume a GNU compiler, e.g., g++ or gcc. This makes all generated
- routines use the ``inline'' keyword to remove cost of function calls.
--G Generate the static table of keywords as a static global variable,
- rather than hiding it inside of the lookup function (which is the
- default behavior).
--h Prints this mesage.
--H Allow user to specify name of generated hash function. Default
- is `hash'.
--i Provide an initial value for the associate values array. Default is 0.
- Setting this value larger helps inflate the size of the final table.
--j Affects the ``jump value,'' i.e., how far to advance the associated
- character value upon collisions. Must be an odd number, default is 5.
--k Allows selection of the key positions used in the hash function.
- The allowable choices range between 1-126, inclusive. The positions
- are separated by commas, ranges may be used, and key positions may
- occur in any order. Also, the meta-character '*' causes the generated
- hash function to consider ALL key positions, and $ indicates the
- ``final character'' of a key, e.g., $,1,2,4,6-10.
--K Allow use to select name of the keyword component in the keyword structure.
--l Compare key lengths before trying a string comparison. This helps
- cut down on the number of string comparisons made during the lookup.
--L Generates code in the language specified by the option's argument. Languages
- handled are currently C++ and C. The default is C.
--n Do not include the length of the keyword when computing the hash function
--N Allow user to specify name of generated lookup function. Default
- name is `in_word_set.'
--o Reorders input keys by frequency of occurrence of the key sets.
- This should decrease the search time dramatically.
--p Changes the return value of the generated function ``in_word_set''
- from its default boolean value (i.e., 0 or 1), to type ``pointer
- to wordlist array'' This is most useful when the -t option, allowing
- user-defined structs, is used.
--r Utilizes randomness to initialize the associated values table.
--s Affects the size of the generated hash table. The numeric argument
- for this option indicates ``how many times larger or smaller'' the associated
- value range should be, in relationship to the number of keys, e.g. a value of 3
- means ``allow the maximum associated value to be about 3 times larger than the
- number of input keys.'' Conversely, a value of -3 means ``make the maximum
- associated value about 3 times smaller than the number of input keys.
- A larger table should decrease the time required for an unsuccessful search,
- at the expense of extra table space. Default value is 1.
--S Causes the generated C code to use a switch statement scheme, rather
- than an array lookup table. This can lead to a reduction in both
- time and space requirements for some keyfiles. The argument to
- this option determines how many switch statements are generated.
- A value of 1 generates 1 switch containing all the elements, a value of 2
- generates 2 tables with 1/2 the elements in each table, etc. This
- is useful since many C compilers cannot correctly generate code for
- large switch statements.
--t Allows the user to include a structured type declaration for
- generated code. Any text before %% is consider part of the type
- declaration. Key words and additional fields may follow this, one
- group of fields per line.
--T Prevents the transfer of the type declaration to the output file.
- Use this option if the type is already defined elsewhere.
--v Prints out the current version number
--Z Allow user to specify name of generated C++ class. Default
- name is `Perfect_Hash.'
-Usage: ../src/gperf [-acCdDef[num]gGhH<hashname>i<init>jk<keys>K<keyname>lL<language>nN<function name>oprs<size>S<switches>tTvZ<class name>].
-(type ../src/gperf -h for help)
diff --git a/apps/gperf/tests/test-7.exp b/apps/gperf/tests/test-7.exp
deleted file mode 100644
index c5c942c10d1..00000000000
--- a/apps/gperf/tests/test-7.exp
+++ /dev/null
@@ -1,32 +0,0 @@
-in word set if
-in word set do
-NOT in word set int
-in word set for
-in word set case
-NOT in word set char
-NOT in word set auto
-in word set goto
-in word set else
-NOT in word set long
-NOT in word set void
-NOT in word set enum
-NOT in word set float
-NOT in word set short
-NOT in word set union
-NOT in word set break
-in word set while
-NOT in word set const
-NOT in word set double
-NOT in word set static
-NOT in word set extern
-NOT in word set struct
-in word set return
-NOT in word set sizeof
-NOT in word set switch
-NOT in word set signed
-NOT in word set typedef
-NOT in word set default
-NOT in word set unsigned
-NOT in word set continue
-NOT in word set register
-NOT in word set volatile
diff --git a/apps/gperf/tests/test.c b/apps/gperf/tests/test.c
deleted file mode 100644
index 35d9015bba7..00000000000
--- a/apps/gperf/tests/test.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-// @(#)test.c 1.1 10/18/96
-
- Tests the generated perfect has function.
- The -v option prints diagnostics as to whether a word is in
- the set or not. Without -v the program is useful for timing.
-*/
-
-#include <stdio.h>
-
-#define MAX_LEN 80
-
-int
-main (argc, argv)
- int argc;
- char *argv[];
-{
- int verbose = argc > 1 ? 1 : 0;
- char buf[MAX_LEN];
-
- while (gets (buf))
- if (in_word_set (buf, strlen (buf)) && verbose)
- printf ("in word set %s\n", buf);
- else if (verbose)
- printf ("NOT in word set %s\n", buf);
-
- return 0;
-}